//插入数据
string sql="insert into [user] (user_name,user_password,answer) values(@user_name,@user_pass,@answer)";

SqlCommand updatecomm=new SqlCommand(sql,conn);
updatecomm.Parameters.Add("@user_name",SqlDbType.VarChar,50).Value=username.Text;
updatecomm.Parameters.Add("@user_pass",SqlDbType.VarChar,50).Value=pass1.Text;

updatecomm.Parameters.Add("@answer",SqlDbType.VarChar,50).Value=answer.Text;
updatecomm.ExecuteNonQuery();结果出现:
无法将 NULL 值插入列 'answer',表 'myweb.dbo.user';该列不允许空值。INSERT 失败。语句已终止。若将SQL表里面的answer列设为可为空,虽然网页可以运行,却不能向answer列里面添加东西,该列总是显示NULL,也就是空值了...请问怎么解决啊?谢谢啊~~~

解决方案 »

  1.   

    先判断值,如果为空值赋值为 DBNull.Value
      

  2.   

    if (xxx== string.Empty)
     {
       xxx = DBNull.Value;
      }
      

  3.   

    你看看是不是你的answer没有获取到值啊,如果有一个不为空的话,按照你后面的方法,也至少应该存进去一条不为空的数据
      

  4.   

    我设置为answer的textbox明明输入值了的啊,但好象就是获取不到,所以它填入数据库时总是NULL...............就是这问题,不知道怎么解决啊.
      

  5.   

    问题跟贴出来的代码无关,应该贴一下和answer这个textbox有关的代码。
      

  6.   

    updatecomm.Parameters.Add("@user_name",SqlDbType.VarChar,50).Value=username.Text==""?DBNull.Value:username.Text;
      

  7.   

    你的answer是服务端控件还是html控件阿
      

  8.   

    <asp:textbox id="answer" runat="server" Height="24px" Width="149px"></asp:textbox>answer控件是这样的....