2013-03-12 56 views
2

我在SQL Server中获得了一个存储过程我创建了一些内部连接,现在我将如何使用该存储过程填充我的数据网格。使用SQL Server存储过程填充datagrid1.view

这里是我的代码不工作

Dim cmd As New SqlCommand 
     Dim reader As SqlDataReader 

     cmd.CommandText = "OfficeEquipmentProfile" 
     cmd.CommandType = CommandType.StoredProcedure 
     cmd.Connection = sqlconn 

     sqlconn.Open() 



     sAdapter = New SqlDataAdapter(cmd) 
     sBuilder = New SqlCommandBuilder(sAdapter) 
     sDs = New DataSet 
     sAdapter.Fill(sDs, "tblOfficeEquipmentProfile") 
     sAdapter.Fill(sDs, "tblDepartment") 
     sAdapter.Fill(sDs, "tblLocation") 
     sAdapter.Fill(sDs, "tblOfficeEquipmentCategory") 
     sAdapter.Fill(sDs, "tblApplication") 
     sAdapter.Fill(sDs, "tblApplicationLicense") 
     sAdapter.Fill(sDs, "tblEquipmentApplication") 
     sAdapter.Fill(sDs, "tblOfficeEquipmentBrand") 
     sAdapter.Fill(sDs, "tblOfficeEquipmentModel") 
     sAdapter.Fill(sDs, "tblOfficeEquipmentServiceOrder") 
     sAdapter.Fill(sDs, "tblOfficeEquipmentPMplan") 


     sTable = sDs.Tables("tblOfficeEquipmentProfile") 
     sTable = sDs.Tables("tblDepartment") 
     sTable = sDs.Tables("tblLocation") 
     sTable = sDs.Tables("tblOfficeEquipmentCategory") 
     sTable = sDs.Tables("tblApplication") 
     sTable = sDs.Tables("tblApplicationLicense") 
     sTable = sDs.Tables("tblEquipmentApplication") 
     sTable = sDs.Tables("tblOfficeEquipmentBrand") 
     sTable = sDs.Tables("tblOfficeEquipmentServiceOrder") 
     sTable = sDs.Tables("tblOfficeEquipmentPMplan") 

     DataGrid1.DataSource = sDs.Tables("tblOfficeEquipmentProfile, tblDepartment, tblLocation, tblOfficeEquipmentCategory, tblApplication,tblApplicationLicense, tblEquipmentApplication, tblOfficeEquipmentBrand, tblOfficeEquipmentServiceOrder,tblEquipmentPMplan") 
     DataGrid1.ReadOnly = True 
     'Button1.Enabled = False 
     'DataGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect 


     reader = cmd.ExecuteReader() 
     sqlconn.Close() 

我只是想从数据库中显示的记录

+1

你会得到什么错误? – DevelopmentIsMyPassion 2013-03-12 07:59:42

+0

它没有返回错误,同时没有显示来自数据库的任何记录 – ivandinglasan 2013-03-12 08:02:53

+0

请显示您的存储过程。我不能看到你正在调用的参数cmd.parameter – DevelopmentIsMyPassion 2013-03-12 08:13:21

回答

1

当您返回从不同的表中的列,而不是多个表,那么你只需要此代码。

Dim Command As SqlCommand = New SqlCommand() 
Command.Connection = Connection 
Command.CommandText = "OfficeEquipmentProfile" 
Command.CommandType = CommandType.StoredProcedure 

Dim sAdapter As SqlDataAdapter = New SqlDataAdapter(Command) 

Dim DataSet As DataSet = New DataSet(Command.CommandText) 

sAdapter.Fill(DataSet) 
DataGrid1.DataSource = DataSet.Tables(0) 
+0

DataGrid1.DataBind()不是system.windows.forms.datagrid IM的成员用vb.net 2003 – ivandinglasan 2013-03-13 00:41:38

+0

@ivandinglasan请SEEE更新的代码,现在尝试 – DevelopmentIsMyPassion 2013-03-13 07:08:01

+0

@APC,AshReva非常感谢!你们都帮助很大! – ivandinglasan 2013-03-13 08:30:28

0

尝试使用此代码

Dim cmd As New SqlCommand 
cmd.CommandText = "OfficeEquipmentProfile" 
cmd.CommandType = CommandType.StoredProcedure 
cmd.Connection = sqlconn 
sqlconn.Open() 

sAdapter = New SqlDataAdapter(cmd) 
sBuilder = New SqlCommandBuilder(sAdapter) 
sDs = New DataSet 
sAdapter.Fill(sDs) 
DataGrid1.DataSource = sDs 

的StoredProcedure的回报一个或多个表,但不需要为每个表调用填充。一个就足够了。然后分配整个数据集的数据源,或者如果您返回多个表,需要一个特定的表

DataGrid1.DataSource = sDs 
DataGrid1.DataMember = "tablename" 
0
Try 
     If con.State = ConnectionState.Open Then con.Close() 
     con.Open() 
     Dim dset As New DataSet 
     Dim dbind As New BindingSource 
     Dim strquery As String 
     strquery = "SELECT prod_code, prod_no, prod_suffix, prod_lvl, customer, model, family, company_code, company_name, company_address, running_no, template_code FROM products_tbl WHERE template_code = 'n'and company_code = 'YTPL' and prod_no = '" & txt_product.Text & "' and prod_suffix = '" & txt_suffix.Text & "' and prod_lvl = '" & txt_level.Text & "'" 
     Dim adap As New SqlDataAdapter(strquery, con) 
     dset = New DataSet 
     adap.Fill(dset) 
     dbind.DataSource = dset.Tables(0) 
     dg.DataSource = dbind 
    Catch ex As Exception 
     MsgBox("Trace No 3: System Error or Data Error!" + Chr(13) + ex.Message + Chr(13) + "Please Contact Your System Administrator!", vbInformation, "Message") 
    End Try