C# 从gridview插入mysql获取空异常

C# 从gridview插入mysql获取空异常,c#,C#,我有一个c#格式的datagridview,它是从mysql数据库填充的。用户查看信息,然后将其保存到另一个mysql数据库。我知道两者的连接都可以工作,就像我的标题所说的那样,我在for循环的第一个字符串上得到一个null异常 行中只有6列,我能想到的唯一一件事是我正在查看行而不是列,但不确定编辑的代码应该是什么,我更改了它,正如大多数人对所说的那样,我认为这是一行: for (i = 0; i <= dataGridView1.Rows.Count; i++) for(i=0;i对于

我有一个c#格式的datagridview,它是从mysql数据库填充的。用户查看信息,然后将其保存到另一个mysql数据库。我知道两者的连接都可以工作,就像我的标题所说的那样,我在for循环的第一个字符串上得到一个null异常


行中只有6列,我能想到的唯一一件事是我正在查看行而不是列,但不确定编辑的代码应该是什么,我更改了它,正如大多数人对
所说的那样,我认为这是一行:

for (i = 0; i <= dataGridView1.Rows.Count; i++)

for(i=0;i对于所有遇到此问题的人,我将发布修复此问题的代码,非常感谢所有对此问题非常有帮助的人

  for (i = 0; i < dataGridView1.Rows.Count-1; i++)
        {

            string ConnectionString2 = ConfigurationSettings.AppSettings["ConnectionString2"];
            MySqlConnection connection2;








            connection2 = new MySqlConnection(ConnectionString2);
            connection2.Open();


                string day = dataGridView1.Rows[i].Cells[0].Value.ToString();
                string Desc = dataGridView1.Rows[i].Cells[1].Value.ToString();
                string item = dataGridView1.Rows[i].Cells[2].Value.ToString();
                string prod = dataGridView1.Rows[i].Cells[3].Value.ToString();
                string vol = dataGridView1.Rows[i].Cells[4].Value.ToString();
                string qty = dataGridView1.Rows[i].Cells[5].Value.ToString();


                MySqlCommand cmdwk = new MySqlCommand("INSERT INTO spt_proposal_line_lab (proposal_Id,day_Name,proposal_Desc,proposal_Vol,product_Id,proposal_Qty,item_Id) VALUES (@propid,@day,@desc,@vol,@prod,@qty,@item)", connection2);
                MySqlParameter propid = new MySqlParameter("@propid", b);
                MySqlParameter day1 = new MySqlParameter("@day", day);
                MySqlParameter Desc1 = new MySqlParameter("@desc", Desc);
                MySqlParameter vol1 = new MySqlParameter("@vol", vol);
                MySqlParameter prod1 = new MySqlParameter("@prod", prod);
                MySqlParameter qty1 = new MySqlParameter("@qty", qty);
                MySqlParameter item1 = new MySqlParameter("@item", item);

                cmdwk.Parameters.Add(day1);
                cmdwk.Parameters.Add(propid);
                cmdwk.Parameters.Add(Desc1);
                cmdwk.Parameters.Add(prod1);
                cmdwk.Parameters.Add(vol1);
                cmdwk.Parameters.Add(qty1);
                cmdwk.Parameters.Add(item1);
                cmdwk.ExecuteNonQuery();



            }
        }

    }
}
for(i=0;i

Brent

难道您不能调试并看到它是空的吗?而且您的循环看起来是错误的,应该是针对
(i=0;i
(严格小于)检查dataGridView1.Rows[i].Cells[0].Value中填充了一些内容…除了从不执行cmdwk这一事实之外,哪一行给出了null异常?字符串在调试中显示了正确的信息,但其显示为System.NullReferenceException was unhandled Message=对象引用未设置为对象的实例。在第一个字符串日,但如果将鼠标悬停在该字符串或任何它显示正确信息的其他字符串?您可以在引发异常的位置设置断点,然后检查所有相关值或从“快速观察”窗口获取它们。我尝试过,但仍然存在相同的问题,因为我的编辑显示单元格为空,但它有一个值您没有包含异常的确切文本(你应该这样做)。当你真的有一个空引用时,你可能会认为你有一个空值。而且你还没有指出错误发生在哪一行。在编辑原始帖子并包含信息之前,不要再添加任何评论。
Object reference not set to an instance of an object.

System.NullReferenceException was unhandled
  HResult=-2147467261
   Message=Object reference not set to an instance of an object.
    Source=SpectLabRemake2
    StackTrace:
   at SpectLabRemake2.Form6.btn_Save_Click(Object sender, EventArgs e) 
for (i = 0; i <= dataGridView1.Rows.Count; i++)
for (i = 0; i < dataGridView1.Rows.Count; i++)
  for (i = 0; i < dataGridView1.Rows.Count-1; i++)
        {

            string ConnectionString2 = ConfigurationSettings.AppSettings["ConnectionString2"];
            MySqlConnection connection2;








            connection2 = new MySqlConnection(ConnectionString2);
            connection2.Open();


                string day = dataGridView1.Rows[i].Cells[0].Value.ToString();
                string Desc = dataGridView1.Rows[i].Cells[1].Value.ToString();
                string item = dataGridView1.Rows[i].Cells[2].Value.ToString();
                string prod = dataGridView1.Rows[i].Cells[3].Value.ToString();
                string vol = dataGridView1.Rows[i].Cells[4].Value.ToString();
                string qty = dataGridView1.Rows[i].Cells[5].Value.ToString();


                MySqlCommand cmdwk = new MySqlCommand("INSERT INTO spt_proposal_line_lab (proposal_Id,day_Name,proposal_Desc,proposal_Vol,product_Id,proposal_Qty,item_Id) VALUES (@propid,@day,@desc,@vol,@prod,@qty,@item)", connection2);
                MySqlParameter propid = new MySqlParameter("@propid", b);
                MySqlParameter day1 = new MySqlParameter("@day", day);
                MySqlParameter Desc1 = new MySqlParameter("@desc", Desc);
                MySqlParameter vol1 = new MySqlParameter("@vol", vol);
                MySqlParameter prod1 = new MySqlParameter("@prod", prod);
                MySqlParameter qty1 = new MySqlParameter("@qty", qty);
                MySqlParameter item1 = new MySqlParameter("@item", item);

                cmdwk.Parameters.Add(day1);
                cmdwk.Parameters.Add(propid);
                cmdwk.Parameters.Add(Desc1);
                cmdwk.Parameters.Add(prod1);
                cmdwk.Parameters.Add(vol1);
                cmdwk.Parameters.Add(qty1);
                cmdwk.Parameters.Add(item1);
                cmdwk.ExecuteNonQuery();



            }
        }

    }
}