Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从datagrid末尾的datagrid复制所选行_Sql Server_Vb.net_Visual Studio 2010_Datagridview - Fatal编程技术网

Sql server 从datagrid末尾的datagrid复制所选行

Sql server 从datagrid末尾的datagrid复制所选行,sql-server,vb.net,visual-studio-2010,datagridview,Sql Server,Vb.net,Visual Studio 2010,Datagridview,我有一个datagrid,需要一个复制活动行并将其复制到新行的按钮。因为我是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 Cata

我有一个datagrid,需要一个复制活动行并将其复制到新行的按钮。因为我是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中运行它时,会出现错误:“找不到列名”。即使表列名是Name和Age,顺便说一句,Age也找不到。也许这根本就是错误的方法。有人能告诉我这里出了什么问题吗?

对于Datagridview Databound,您必须向datasource表提交额外的记录

所以,你必须这么做

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

在sqlcommand中设置dbo.Table_Insert,存储过程名称为dbo.Table1_Insert。问题不在这里?…

首先:谢谢!我试着实施你的建议。你能看一下我的第一篇文章吗?我修改了它。不幸的是“CurrentRow”不知道“item”。嗨,克里斯。不,这只是我在这里用特定项目的名称来代替更好的阅读时犯的一个错误。我现在在上面的代码中更改了这一点。当您编写的列名找不到时,错误会发生在DataGridView中还是在执行存储过程时?如何填充DatagridView并创建列?我使用了调试器,错误发生在它尝试执行insert_cmd.Parameters行时。AddWithValue@Name,.CellsName.Value。如何填充DatagridView:我创建了一个新元素->数据集,并将dataadapter放到表单中。我在向导中分配了存储过程Select、Update、Insert和Delete。是否尝试从列索引而不是其名称中获取单元格值?切换到索引会出现以下错误消息:“索引超出范围。必须为非负且小于集合的大小。参数名称:index”