使用SQL Server 2008我创建了一个名为MyStoreProc的存储过程,它可以从管理工具中正常运行。
在VB.Net 2008中,我创建了一个新的数据集和一个新的TableAdaptor。在这个表适配器中,我创建了一个名为FillByGrid的新Query,并选择了存储过程。预览数据并正确预览。
在表单上,我创建了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中显示。
有人有任何建议吗?
谢谢
答案 0 :(得分:3)
我设法让这个现在开始。以下是我的所作所为。感谢大家的帮助。它把我推向正确的方向。
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
答案 1 :(得分:1)
尝试DataGridView2.DataBind();最后
答案 2 :(得分:0)
似乎有丰富的资源可用于如何做到这一点。最好的来源是:http://www.asp.net/learn/data-access/ -
没有一个好的老式search yields lots too。