2013-06-01 45 views
0

我有一個gridview通過我的下拉列表中選定的項目填充,我沒有任何問題。我的問題是我想在我的GridView多行保存到我的數據庫,例如我已經加入我的gridview的3個項目,看起來像這樣:將多行gridview保存到數據庫中

Id | Name 
111 | Jack 
222 | Nicole 
333 | John 

現在,我想所有在列ID被111,222和333將保存在我的數據庫中,一旦我點擊保存按鈕我正在嘗試下面的代碼,但它給了我一個錯誤,說「system.data.sqlclient.sqlparameter不包含'值'的定義,並沒有擴展方法「價值」接受一個類型的第一個參數...」:

SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True"); 
    SqlCommand cmdd = new SqlCommand("Insert into profile (Id, profile_id)VALUES(@id, @profile_id", con); 

    foreach (GridViewRow row in GridView1.Rows) 
    { 

     cmdd.Parameters.Add("@id", SqlDbType.Char, 20, "Id").Values = row.Cells["Id"].Value; 
    } 

    cmdd.CommandType = System.Data.CommandType.Text; 

    cmdd.Parameters.AddWithValue("@profile_id", txtID.Text); 
    con.Open(); 
    cmdd.ExecuteNonQuery(); 

我的表應該是這個樣子,一旦我能夠從我的GridView中保存多個行到我的DAT基礎:

auto_id | Id | profile_id 
1  |111 | 101 
2  |222 | 101 
3  |333 | 101 

我在想什麼?我在C#中使用asp.net。

回答

0

由於您正在使用Values,但實際上它是Value。所以試試這個

foreach (GridViewRow row in GridView1.Rows) 
{ 
    cmdd.Parameters.Add("@id", SqlDbType.Char, 20, "Id").Value = row.Cells[0].Value; 
} 

我也寫了一篇與此相似的帖子。您還可以查看到該

Save DataSet Changes to Database in C#

+0

嗨感謝回答,我想你的代碼,但它給了我在row.Cells [「ID」]錯誤。它說「System.Web.UI.WebControls.TableCellCollection.this [int]'的最佳重載方法匹配有一些無效參數」。再次感謝 – user2388316

+0

@ user2388316好吧,所以你需要傳遞'Id'這個列的索引而不是名字「id」。我已經更新了我的答案。我假設'Id'是第一列,這就是我使用'Cells [0]'的原因。 – Sachin