我需要將DataGridView
列和2 DataTable
列插入到SQL中。下面的代碼按順序插入了DataGridView
列,這是我想要的,但DataTable
列只插入第一行並將其複製到所有行上。任何想法如何解決這個問題?將datatable和datagridview數據插入到sql中
_Command = New SqlCommand("insert_student", _Connection)
_Command.CommandType = CommandType.StoredProcedure
_Connection.Open()
_Command.Parameters.Add(New SqlParameter("@_name", SqlDbType.NVarChar))
_Command.Parameters.Add(New SqlParameter("@_m_barrImg", SqlDbType.VarBinary))
_Command.Parameters.Add(New SqlParameter("@_CurrentImageName", SqlDbType.NChar))
_Command.Parameters.Add(New SqlParameter("@_CurrentImageName1", SqlDbType.NChar))
For x = 0 To DataGridView1.RowCount - 1
_Command.Parameters("@_name").Value = DataGridView1.Rows(x).Cells("name4").Value
_Command.Parameters("@_m_barrImg").Value = DataGridView1.Rows(x).Cells("CompanyStatusImage").Value
Dim dt As New DataTable()
For i As Integer = 0 To dt.DefaultView.Count - 1
_Command.Parameters("@_CurrentImageName").Value = dt.Rows(i)("CurrentImageName").ToString
_Command.Parameters("@_CurrentImageName1").Value = dt.Rows(i)("CurrentImageName1").ToString
Next
_Command.ExecuteNonQuery()
Next
存儲過程
USE [master]
GO
/****** Object: StoredProcedure [dbo].[insert_student] Script Date: 07/04/2013 21:47:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[insert_student] (@_m_barrImg varbinary(max),
@_name nvarchar(max)
as
insert into tblimgdata(name4,CompanyStatusImage)
values (@_name,@_m_barrImg)
您正在通過DataGridView的For循環中的'DataTable'循環 - 這意味着您正在獲取的'DataTable'中的唯一值是表中最後一行的值。 'DataGridView'和'DataTable'之間有什麼關係? 1是1嗎? – Tim
是1表示1.感謝 – user1858480