2013-06-13 47 views
1

我有一個數據網格,需要一個按鈕來複制活動行並將其複製到一個新行中。由於我對vb.net非常新,我需要幫助。與存儲過程在數據網格的末尾從datagrid複製選定的行

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 

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 

combind當我嘗試運行它在Visual Studio我得到的錯誤: 我用下面的代碼嘗試它「列‘名稱’不能找到。」即使你的表列名稱是「名稱」和「年齡」順便說一句。 「年齡」也無法找到。也許這是一種錯誤的方法。有人可以告訴我這裏有什麼問題嗎?

回答

0

在您設置「dbo.Table_Insert」和您的存儲過程的名稱是「dbo.Table1_Insert」中的SqlCommand。問題不在這裏?...

+0

嗨克里斯。沒有,這只是我犯的一個錯誤,而用特定項目的名字替代了更好的閱讀。我現在改變了上面的代碼。 – ruedi

+0

當你寫「無法找到列名」時,錯誤發生在DataGridView中或執行存儲過程時?你如何填充DatagridView並創建列? – Chris

+0

我使用了調試器,當它嘗試執行「insert_cmd.Parameters.AddWithValue(」@ Name「,.Cells(」Name「)。Value)」時發生錯誤。我如何填充DatagridView:我創建了一個新的Element - > dataset,並將dataadapter放到了表單中。我在嚮導中分配了存儲過程(選擇,更新,插入和刪除)。 – ruedi

0

對於DataGridView的數據綁定,你必須提交額外的記錄數據源(表)

所以,你所要做的

"INSERT INTO mytable (fields here ...) VALUES (values here ..)" 

然後刷新你的datagridview ..

dt2.datasource = mytable 

ADDED:

F或者你的代碼...嘗試改變這樣

insert_cmd.Parameters.AddWithValue("@Name", .item("Name")) 
insert_cmd.Parameters.AddWithValue("@Age", .item("Age")) 
+0

首先:謝謝!我試圖實現你的建議。你可以看看我的第一篇文章,我修改了它。 – ruedi

+0

@ruedi:我不太確定,但你可以嘗試我的更新。 – matzone

+0

不幸的是'CurrentRow'不知道'項目'。 – ruedi

相關問題