我有一个gridview,通过我的下拉列表中的选定项目填充,我没有任何问题。我的问题是我试图将gridview上的多行保存到我的数据库中,例如我在gridview上添加了3个项目,如下所示:
Id | Name
111 | Jack
222 | Nicole
333 | John
现在,我希望列Id下的所有内容111,222和333将保存在我的数据库上,一旦我点击保存按钮我正在尝试下面的代码,但它给我一个错误说“system.data.sqlclient。 sqlparameter不包含'Values'的定义,也没有扩展方法'Values'接受类型的第一个参数......“:
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中的多行保存到我的数据库中,我的表应该是这样的:
auto_id | Id | profile_id
1 |111 | 101
2 |222 | 101
3 |333 | 101
我错过了什么?我正在使用带有C#的asp.net。
答案 0 :(得分:1)
由于您使用Values
但实际上是Value
而导致的错误。所以试试这个
foreach (GridViewRow row in GridView1.Rows)
{
cmdd.Parameters.Add("@id", SqlDbType.Char, 20, "Id").Value = row.Cells[0].Value;
}