【发布时间】:2010-12-28 00:31:40
【问题描述】:
我使用 SQL Server 2008 创建了一个名为 MyStoreProc 的存储过程,它在管理工具中运行良好。
在 VB.Net 2008 中,我创建了一个新数据集和一个新 TableAdaptor。在这个表适配器中,我创建了一个名为 FillByGrid 的新查询并选择了存储过程。预览数据并正确预览。
在一个表单上,我创建了 DataGridView 并从数据集中选择了 Table Adapter。
我运行了应用程序,但没有显示任何数据。 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 中。
有人有什么建议吗?
谢谢
【问题讨论】:
-
datagridview 是显示列但没有数据,还是什么都不显示?
-
datagridview 什么都没有显示?
标签: .net sql sql-server vb.net dataset