Domanda

I got a stored procedure in SQL Server I created some inner joins and now how will I populate my datagrid using that stored procedure.

Here is my code that is not working

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()

I just want to display records from the database

È stato utile?

Soluzione

As you are returning columns from different tables and not multiple tables then you just need this code.

 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)

Altri suggerimenti

Try with this code

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

The storedprocedure return one or more tables, but you don't need to call a Fill for each table. One is enough. Then assign the whole Dataset to the Datasource or, if you return more than one table and need a specific table

DataGrid1.DataSource = sDs
DataGrid1.DataMember = "tablename"
    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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top