C# 读取datagrid视图coulmn值,在c中给出结尾处的错误#

C# 读取datagrid视图coulmn值,在c中给出结尾处的错误#,c#,C#,我正在读取数据网格视图列的值,并将这些值存储到数据库中。这些值完美地添加到数据库中,但最后它给了我一个异常。我真的不知道为什么它在最后给了我一个异常。异常是对象引用未设置为对象的实例。 这是我的密码 for (int rows = 0; rows < dataGridView1.Rows.Count; rows++) { for (int col = 0; col < dataGridView1.Rows[rows].Cell

我正在读取数据网格视图列的值,并将这些值存储到数据库中。这些值完美地添加到数据库中,但最后它给了我一个异常。我真的不知道为什么它在最后给了我一个异常。异常是对象引用未设置为对象的实例。 这是我的密码

for (int rows = 0; rows < dataGridView1.Rows.Count; rows++)
            {

                for (int col = 0; col < dataGridView1.Rows[rows].Cells.Count; col++)
                {
                    string value = dataGridView1.Rows[rows].Cells[col].Value.ToString();
                    MessageBox.Show(value);
                    string st3 = "INSERT INTO aprori_words(aprori) VALUES('" + value + "')";
                    SqlCommand cmd = new SqlCommand(st3, con);
                    cmd.ExecuteNonQuery();

                }
            }
for(int rows=0;rows

最有可能的原因是
ToString()
,如果
null
,则会引发异常

Convert.ToString()
null
返回一个空字符串,请尝试以下操作:

var value = Convert.ToString(dataGridView1.Rows[rows].Cells[col].Value);

if (!String.IsNullOrEmpty(value))
{
    // call the rest of your code to save "value" to the database
}

您还应该考虑参数化查询。它将更容易维护,也更安全

var st3 = "INSERT INTO aprori_words(aprori) VALUES(@value)";
SqlCommand cmd = new SqlCommand(st3, con);
cmd.Parameters.AddWithValue("@value", value);
cmd.ExecuteNonQuery();

但是兄弟,问题发生在循环中,问题不在数据库中,我尝试过这个,但没有数据库,它给了我相同的错误,问题不在数据库中,问题在循环中,它给了我想要的结果,但在执行上一个结果后,它给了我一个异常。希望你理解我想要的。好的,让我添加一些快照然后你会清楚我的错误请检查快照是的,我已经用你的代码替换了代码,但它仍然给我相同的异常