我有一个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);
}
}
}
我的错误是“对象引用未设置为对象的实例”。 帮我解决这个问题
答案 0 :(得分:0)
用Convert.ToString替换.ToString(),如下所示。它将处理空白以及空值。然后,您可以检查为什么值变为空。您还需要添加.Text,如下所示。
cmd.Parameters.AddWithValue("@CRITICAL", Convert.ToString(row.Cells[0].Text));
cmd.Parameters.AddWithValue("@SPECIFICATION", Convert.ToString(row.Cells[1].Text));
答案 1 :(得分:0)
在调用.ToString()
之前,请确保您的对象不为null,此外,要读取单元格文本,您还必须放置.Text
像这样:
if (row.Cells[0] != null && !string.IsNullOrEmpty(row.Cells[0].Text)) {
cmd.Parameters.AddWithValue("@CRITICAL", row.Cells[0].Text.ToString());
} else {
// Handle it
}