我写了个程序需要在datagridview中增加记录。运行时候报错,代码如下:
if ((dataGridView1.SelectedCells[0].Value.ToString() != "")||(dataGridView1.SelectedCells[1].Value.ToString() != ""))
                {
                    string mvalue = "'" + dataGridView1.SelectedCells[0].Value.ToString() ;
                    SqlConnection objconn = new SqlConnection("server=CAO-FED8A28F5E5;database=yangzhouguwei;uid=sa;pwd=hansys");
                    string inscmd = "insert into sales_inform(用户名";
                    if (dataGridView1.SelectedCells[1].Value.ToString()!="")
                    {
                        inscmd += ",密码";
                        mvalue = mvalue + "','" + dataGridView1.SelectedCells[1].Value.ToString();
                    }
                    if (dataGridView1.SelectedCells[2].Value.ToString().Length>0)
                    {
                        inscmd += ",产品";
                        mvalue = mvalue + "','" + dataGridView1.SelectedCells[2].Value.ToString();
                    }
运行到if (dataGridView1.SelectedCells[1].Value.ToString()!="")这句的时候报错:索引超出范围。必须为非负值并小于集合大小。
是什么问题?正确的代码应该如何写?
请各位大侠赐招!!!!!!!!!!!

解决方案 »

  1.   

    你需要确认一下选中的datagridview是否有第二列
      

  2.   

    从datagridview里先找row,再找cell
      

  3.   

    楼主,我以前做插入数据用了一个土办法不知道行不行:
    string inscmd = "Insert into 表名 values(@参数名)";
                objsqlData.InsertCommand = new SqlCommand(inscmd,objsqlconn);
                SqlParameter objsqlPara = new SqlParameter();
                objsqlPara = objsqlData.InsertCommand.Parameters.Add("@参数名", SqlDbType.Char);
                objsqlPara.SourceColumn = "字段名";
                objsqlPara.SourceVersion = DataRowVersion.Current;