private void button7_Click(object sender, EventArgs e)
        {  //连接数据库,成功了
            string lianjiezichuan = "server=(local)\\sqlexpress;   database=fifdb;                   uid=sa ;                pwd=weiyl37";   
            SqlConnection conn2 = new SqlConnection(lianjiezichuan );
           
                SqlCommand cmd = new SqlCommand();
                conn2.Open();
                cmd.Connection = conn2;
                //查询  label6显示 true
                  cmd.CommandText = "select * from tbl_user";
                SqlDataReader shuju = cmd.ExecuteReader();
                
                shuju.Close() ;
                conn2.Close();                //插入  将fif  studio 倒表tbl_user 中的  u_user   u_code 字段,但是不成功
                  conn2.Open();
                cmd.Connection = conn2;
                cmd.CommandText ="insert into tbl_user (u_user,u_code)  values ('fif','studio')";
                int i; 
                i    = cmd.ExecuteNonQuery();
                label7.Text = i.ToString();
           
}
label7 如果显示数字1,表示插入成功,可是就是不显示,高手清告诉我,错在何处?

解决方案 »

  1. 如果没有执行label7.Text = i.ToString(); 说明代码有错误了,加上try
      

  2. 加个trycatch    跟下,就知道什么错了 。
      

  3. 如果表tbl_user有其他要求非空字段,并且没有默认值,但是你插入时没有提供,就插入不成功。
      

  4. 估计你的表不止2个字段吧。如果不想改代码,你就在其它字段设置默认值。
    否则你就在insert语句中都提供。
      

  5. //insert into tbl_user (u_user,u_code)  values ('fif','studio')//
    sql语句中插入语句好像没有“into” 吧,去掉into?insert tbl_user (u_user,u_code)  values ('fif','studio')
      

  6. 是不是记录已经存在了, 楼主又定义了主键 u_user,u_code 这样就没办法再插入了建议先 truncate table tbl_user 然后执行
      

  7. 单步调试进去
    catch(Excepetion ex)
    {
    }
    执行到
    catch(Excepetion ex)
    看ex的值就可以看到错误了!!
      

  8. 试试在获得textbox值,或者各个控件值的代码处添加:
    if(!IsPostBack)
    {
         //例如
         string a=textbox1.text;
        string b=textbox2.text;
    }
      

  9. 你的U_code是什么类型啊,如果是数字型就有问题哟
      

  10. 你先用try catch 捕获一下异常嘛! 跟踪一下看出了什么问题!
     我想问题不在代码,在表的结构上!
     看是不是数据类型或者check约束什么的!!
     
      

  11. 可能有2个原因:
    1.在插入前把conn2给close掉了,.NET环境可能已经把conn2对象释放了,即cmd得不到Connection对象了。
    而且SqlDataReader 对象关闭时也会把connection对象关闭的。所以中间的shuju.Close() ;与       conn2.Close(); 放到最后,中间的conn2.open()去掉。2.可能你tbl_user表中还有 不允许空的字段。
      

  12. 第一:你用CATCH捕抓一下错误信息;
    第二:检查一下是不是表结构有问题;
    第三:是不是插入的数据类型不对。楼主记得散分啊。
      

  13. 建议楼主sql语句在数据库中执行一下,看看行不行,然后在弄到VS里程序开发的时候经常这么做
      

  14. 谢谢各位了,greenery 和 Qzh7523  的方法我试过,通过了,我的数据库中还有一个u_id 字段,非空的。结贴去
      

类似问题 »