我有一个数据网格,需要一个复制活动行并将其复制到新行的按钮。由于我是vb.net的新手,我需要帮助。 我正在尝试使用以下代码:
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
Dim conn As New SqlConnection("Data Source=xxx\SQLEXPRESS;Initial Catalog=DB;Integrated Security=TRUE")
Dim insert_cmd As SqlCommand = New SqlCommand("dbo.Table_Insert", conn)
insert_cmd.CommandType = CommandType.StoredProcedure
With Table1_SelectDataGridView.CurrentRow
insert_cmd.Parameters.AddWithValue("@Name", .Cells("Name").Value)
insert_cmd.Parameters.AddWithValue("@Age", .Cells("Age").Value)
End With
conn.Close()
End Sub
与存储过程结合
STORED PROCEDURE [dbo].[Table_Insert]
@Name varchar(20)
@FeierT_ID int
AS
BEGIN
SET NOCOUNT ON
INSERT INTO dbo.table1
(
Name,
Age
)
VALUES
(
@Name,
@Age
)
END
当我尝试在visual studio中运行时,我收到错误:找不到“列”名称“。”即使你的表列名称是“名称”和“年龄”顺便说一句。 “年龄”也找不到。也许这是错误的做法。谁能告诉我这里有什么问题?
答案 0 :(得分:0)
对于Datagridview Databound,您必须向数据源(表)提交附加记录
所以,你必须这样做
"INSERT INTO mytable ( fields here ... ) VALUES ( values here ..)"
然后刷新datagridview ..
dt2.datasource = mytable
已添加:
对于您的代码...尝试更改
insert_cmd.Parameters.AddWithValue("@Name", .item("Name"))
insert_cmd.Parameters.AddWithValue("@Age", .item("Age"))
答案 1 :(得分:0)
在sqlcommand中设置“dbo.Table_Insert”,存储过程名称为“dbo.Table1_Insert”。问题不在这里?...