首先,对不起我的英语,因为它不是我的母语。我会尽量具体。我通常使用 Windows 窗体在连接到我的 VB 项目的 mdf 中创建存储过程。我所做的是添加一个 dbml 文件,然后将存储过程拖放到 dbml 设计器中的函数列中。然后,我可以这样做:(在这种情况下,我的 DBML 文件名是“教程数据”)
Public Class Form1
Private status As New TutorialsDataDataContext
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim rec = status.TutorialStatus()
ComboBox1.DataSource = rec
End Sub
End Class
TutorialStatus() 返回 3 个值。像这样的代码在 Windows 窗体项目中运行良好,当我运行它时,它会向我显示数据库的那些值。问题是 WPF 应用程序中似乎不存在“DataSource”属性,而与它最相似的是“ItemsSources”属性。问题是,该属性返回三个值:组合框中的“tutorial_keeper_real.tutorialstatusresult”。
我在 WPF 项目中编写的代码如下所示:
Class MainWindow
Private status As New TutorialsDataDataContext
Private Sub winMain_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
Dim rec
rec = status.TutorialStatus()
ComboBox1.ItemsSource = rec
End Sub
End Class
它将函数所做的操作返回到数据库,但不返回实际值。有什么方法可以实现我在使用 WPF 的 Windows 窗体项目中所做的事情?请不要告诉我通过 Ado.net 或类似的方式执行此操作,因为我知道这一点,但我更愿意这样做……或者我宁愿返回 Windows 窗体。嗯,谢谢大家!!对不起,我的英语很差……这不是我的母语。
PD。如果有人对我如何使用 dbml 基于存储过程创建函数有任何疑问,你可以看到这个视频,因为这个人做得很好: