В sql можно создать табличный тип — вот пример из одной из моих баз. Измените по мере необходимости.
CREATE TYPE [dbo].[AddSample_Type] AS TABLE(
[JobID] [int] NOT NULL,
[SampleDescription] [nvarchar](1000) NOT NULL,
[Notes] [nvarchar](1000) NULL,
[SampleName] [nvarchar](200) NULL,
[StorageLocationID] [int] NULL,
[StorageDispositionID] [int] NULL,
[StorageNotes] [nvarchar](1000) NULL,
[EmployeeID] [int] NULL,
[CheckedOutToEmployee] [bit] NULL
)
GO
Вы можете создать процедуру, которая принимает эту таблицу в качестве входных данных. В конце концов, гораздо проще и эффективнее работать со строками и таблицами в sql.
CREATE PROCEDURE [dbo].[AddMultipleSamplesToJob]
@SamplesToAdd AddSample_Type Readonly
AS
BEGIN
select JobID,SampleDescription,Notes,SampleName,StorageLocationID,
StorageDispositionID,StorageNotes,EmployeeID,CheckedOutToEmployee, 0 as SampleNumber
from @SamplesToAdd
END
Теперь вы можете отправить таблицу, полную строк, в вашу хранимую процедуру из VB.
Dim addSamplesTable As New EPI_JobBookDataSet.AddMultipleSamplesToJobDataTable
Dim AddSamplesAdapter As New EPI_JobBookDataSetTableAdapters.AddMultipleSamplesToJobTableAdapter
'Datatable to be sent in the procedure
Dim TablesamplesToAdd As New EPI_JobBookDataSet.TableType_AddSampleTable
'Make a new row and load it with data
Dim newSampleRow As EPI_JobBookDataSet.TableType_AddSampleRow = TablesamplesToAdd.Rows.Add()
newSampleRow.CheckedOutToEmployee = StorageActivityEntryTool1.WithEmployee
newSampleRow.EmployeeID = StorageActivityEntryTool1.EmployeeID
newSampleRow.JobID = JobID
newSampleRow.Notes = r.Cells(ColumnNotes.Index).Value
newSampleRow.SampleDescription = r.Cells(ColumnDescription.Index).Value
newSampleRow.SampleName = r.Cells(ColumnSampleName.Index).Value
newSampleRow.StorageDispositionID = StorageActivityEntryTool1.DispositionID
newSampleRow.StorageLocationID = StorageActivityEntryTool1.LocationID
newSampleRow.StorageNotes = "Some notes"
'Add more rows if desired
'
'Send the query
AddSamplesAdapter.Fill(addSamplesTable, TablesamplesToAdd)
Я надеюсь, что вы найдете это полезным. Пожалуйста, игнорируйте ссылку внутри моей строки, поскольку я скопировал ее из своего кода и был слишком ленив, чтобы изменить эти конкретные значения для этого примера.
person
ThatGuy
schedule
10.07.2015