Заполнение datagrid1.view хранимой процедурой SQL Server

У меня есть хранимая процедура в SQL Server. Я создал несколько внутренних соединений, и теперь, как я буду заполнять свою сетку данных с помощью этой хранимой процедуры.

Вот мой код, который не работает

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

Я просто хочу отображать записи из базы данных


person ivandinglasan    schedule 12.03.2013    source источник
comment
он не выдавал ошибки, в то же время не отображал никаких записей из базы данных   -  person ivandinglasan    schedule 12.03.2013
comment
Покажите вашу хранимую процедуру. Я не вижу параметры, которые вы вызываете в cmd.parameter   -  person DevelopmentIsMyPassion    schedule 12.03.2013
comment
моя хранимая процедура слишком длинная, как я могу это показать?   -  person ivandinglasan    schedule 12.03.2013
comment
какой параметр ожидает ваша хранимая процедура? Я не вижу никаких параметров, пока вы вызываете эту хранимую процедуру в своем коде .net.   -  person DevelopmentIsMyPassion    schedule 12.03.2013
comment
пожалуйста, пришлите мне свой адрес электронной почты, я отправлю его вам мой [email protected]   -  person ivandinglasan    schedule 12.03.2013
comment
моя электронная почта [email protected]   -  person DevelopmentIsMyPassion    schedule 12.03.2013
comment
Ваша хранимая процедура должна возвращать несколько таблиц. И вам нужна только одна заливка (набор данных). Посмотрите на этот вопрос   -  person Steve    schedule 12.03.2013
comment
потому что я использую внутреннее соединение. он содержит множество таблиц, объединенных для отображения всех столбцов в 1 сетке данных.   -  person ivandinglasan    schedule 12.03.2013
comment
внутреннее соединение не возвращает отдельные таблицы, а только одну с объединенными столбцами из одной или нескольких таблиц. Если вы ожидаете, что sp вернет несколько таблиц, вам нужно (внутри sp) выбрать для каждой таблицы, как объясняется в ссылке, опубликованной ранее.   -  person Steve    schedule 12.03.2013
comment
@AshReva, ivan. Вы можете использовать чат SO вместо публикации адресов электронной почты.   -  person APC    schedule 13.03.2013
comment
@APC извините, сэр, я не могу использовать чат из-за низкой репутации новой учетной записи   -  person ivandinglasan    schedule 13.03.2013


Ответы (2)


Поскольку вы возвращаете столбцы из разных таблиц, а не из нескольких таблиц, вам просто нужен этот код.

 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)
person DevelopmentIsMyPassion    schedule 12.03.2013
comment
DataGrid1.DataBind() не является членом system.windows.forms.datagrid с использованием vb.net 2003 - person ivandinglasan; 13.03.2013
comment
@APC, AshReva Большое спасибо! вы оба очень помогаете! - person ivandinglasan; 13.03.2013

Попробуйте с этим кодом

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

Сохраненная процедура возвращает одну или несколько таблиц, но вам не нужно вызывать Fill для каждой таблицы. Одного достаточно. Затем назначьте весь набор данных источнику данных или, если вы возвращаете более одной таблицы и вам нужна конкретная таблица

DataGrid1.DataSource = sDs
DataGrid1.DataMember = "tablename"
person Steve    schedule 12.03.2013