批量导入SQL数据库的错误
我做了一个datagridview导入SQL数据库的模块,然后在数据库里面设置了A列不能为空.
现在有2个模块,第一个模块是一条一条输入数据,然后保存,这个没问题.
第二个模块是选择某一个excel 文件,然后把excel 的数据装入datagridview,再把datagridview的数据批量写入到sql数据库里面,这时就出现问题,即使A列是空值,依然可以写入,sql一点反应都没有,try/catch也捕捉不到任何异常?救命啊~~~
第一个模块(手动录入)
第二个模块(批量导入)
批量导入代码:
private void inserttosql(DataRow dr)
         {
             string connstr = "server=JJJKKK;Initial Catalog=dt_xxgl;UID=sa;PWD=123";
             string xm = dr["姓名"].ToString();
             string sfz = dr["身份证"].ToString();
             string xb = dr["性别"].ToString();
             string csrq = dr["出生日期"].ToString();
             string xz = dr["乡镇"].ToString();
             string xxdz = dr["详细地址"].ToString();
             string bz = dr["备注"].ToString();
             string sql = "insert into jbxx(姓名,身份证,性别,出生日期,乡镇,详细地址,备注) values('" + xm + "','" + sfz + "','" + xb + "','" + csrq + "','" + xz +"','" + xxdz +"','" + bz +"')";
             SqlConnection conn = new SqlConnection(connstr);
             SqlCommand cmd = new SqlCommand(sql, conn);
             conn.Open();
             cmd.ExecuteNonQuery();
             conn.Close();
             textBox1.Text = null;  
         }
         private void btn_insert_Click(object sender, EventArgs e)
         {
             if (dataGridView1.Rows.Count > 0 )
             {
                 DataRow dr = null;
                 try
                 {
                     for (int i = 0; i < dt.Rows.Count; i++)
                     {
                         dr = dt.Rows[i];
                         inserttosql(dr);
                     }
                     MessageBox.Show("插入成功!");
                     dataGridView1.DataSource = null;
                 }
                 catch (Exception err)
                 {
                     MessageBox.Show("操作失败!" + err.ToString());
                 }                 
             }
             else
             {
                 MessageBox.Show("没有数据!");
             }
         }
------解决方案--------------------
数据库里面设置不能为空是指,不能为NULL, 空字符串"" 不是null.
你的代码中,并没有判断datagridview中的cell是不是为null,还是空字符串.