我使用 SQL Server 2008 创建了一个名为 MyStoreProc 的存储过程,它在管理工具中运行良好。
在 VB.Net 2008 中,我创建了一个新的数据集和一个新的 TableAdaptor。在此表适配器中,我创建了一个名为 FillByGrid 的新查询并选择了存储过程。预览数据并且预览正确。
在表单上,我创建了 DataGridView 并从数据集中选择了表适配器。
我运行了该应用程序,但没有显示任何数据。 Visual Studio 自动创建了下面的代码,我将其更改为选择我刚刚创建的查询:
Me.MyTableAdapter.FillByGrid(Me.MyDataset.MyTableAdaptor)
网格上没有显示数据,所以我尝试了手动方法:
' Create the dataset
Dim da As New SqlDataAdapter, ds As New DataSet
Dim conn As New SqlConnection
conn.ConnectionString = opsData.DBConn.ConnectionString
da.SelectCommand = New SqlCommand
da.SelectCommand.Connection = conn
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.CommandText = "dbo.MyStoreProc"
da.Fill(ds, "tbl1")
DataGridView2.DataSource = ds.Tables("tbl1")
仍然没有显示任何数据。然而,逐步执行我可以看到连接已打开,并且“da.Fill(ds,“tbl1”)”需要一点时间,因为它正在运行存储过程并且 ds 表具有正确的行数和列数。它只是没有显示在数据网格上。
在数据集中创建另一个表适配器,并使用标准 select * from table 命令从数据库表返回数据,显示在 datagridview 中。
有没有人有什么建议?
谢谢
我现在设法让这件事继续下去。以下是我所做的。感谢大家的帮助。它把我推向了正确的方向。
Dim strCon As String = myConnectionString
Dim strSQL As String = "dbo.MyStoreProc"
Dim dataAdapter As New SqlClient.SqlDataAdapter(strSQL, strCon)
Dim table As New DataTable
dataAdapter.Fill(table)
DataGridView1.DataSource = table
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)