首页 > 解决方案 > 将 Gridview 数据保存到数据库

问题描述

我有一个 Gridview,我想将它保存在我的另一个表中

我的代码是

protected void upload_Click(object sender, EventArgs e)
{
    string query1 = "INSERT INTO tbl_Pre_Y1_Bus1 (CRITICAL,SPECIFICATION, [1],[2],[3],[4],[5],TMLCAL) VALUES (@CRITICAL, @SPECIFICATION, @[1], @[2], @[3], @[4], @[5], @TMLCAL)";

    foreach (GridViewRow row in GridView2.Rows)
    {
        using (SqlCommand cmd = new SqlCommand(query1))
        {
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;

            cmd.Parameters.AddWithValue("@CRITICAL", row.Cells[0].ToString());
            cmd.Parameters.AddWithValue("@SPECIFICATION", row.Cells[1].ToString());
            cmd.Parameters.AddWithValue("@[1]", row.Cells[2].ToString());
            cmd.Parameters.AddWithValue("@[2]", row.Cells[3].ToString());
            cmd.Parameters.AddWithValue("@[3]", row.Cells[4].ToString());
            cmd.Parameters.AddWithValue("@[4]", row.Cells[5].ToString());
            cmd.Parameters.AddWithValue("@[5]", row.Cells[6].ToString());
            cmd.Parameters.AddWithValue("@TMLCAL",row.Cells[7].ToString());
         con.Open(); //here i am having an respected error
         cmd.ExecuteNonQuery();
         con.Close();
         Page.Response.Redirect(Page.Request.Url.ToString(), true);
        }

    }
}

我的错误是“对象引用未设置为对象的实例”。帮我解决这个问题

标签: c#asp.netsql-serverado.net

解决方案


将 .ToString() 替换为 Convert.ToString,如下所示。它将处理空白和空值。然后您可以检查为什么该值变为空。您还需要添加 .Text ,如下所示。

cmd.Parameters.AddWithValue("@CRITICAL", Convert.ToString(row.Cells[0].Text));
cmd.Parameters.AddWithValue("@SPECIFICATION", Convert.ToString(row.Cells[1].Text));

推荐阅读