将多行gridview保存到数据库中

时间:2013-06-01 14:13:37

标签: c# asp.net

我有一个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。

1 个答案:

答案 0 :(得分:1)

由于您使用Values但实际上是Value而导致的错误。所以试试这个

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