我要向sql数据库表中插入数据,其中有一个长度(long)字段,它的数据类型是numeric,允许空,我这样写的语句:sqlDataAdapter1.InsertCommand.CommandText = "insert into 表名(long) values("+ long.Text +")";
这样写不能插入空值,我想是不是应该在long.Text这做一下判断啊?我该如何做?
请各位ggjj们指导一下小妹,非常感谢!

解决方案 »

  1.   

    是啊,要是long.text的值是""的话,就不用插入这一列了
      

  2.   

    这样写
    insert into 表名(long) values(@long)";
    InsertCommand.Parameters.Add("@long", SqlDbType.numeric, 这里是字段long的长度, "long");
    InsertCommand.Parameters["@long"].Value = long.Text.Trim();
      

  3.   

    1.int init = 0;
    if(long.Text.Trim()!="")
    {
    init = Convert.ToInt64(long.Text);
    }
    然后把SQL中的long.Text改为init就可以了。
    数据类型最好不要使用null,宁愿使用''。2.设置字段的默认值。
      

  4.   

    totopig(拖拖猪) 我按你说的做了,可是提示我错误信息:无法将类型“long”转换为“int”,
    这是什么原因?
      

  5.   

    试试这个:sqlDataAdapter1.InsertCommand.CommandText = 
    "insert into 表名(long)(Field1, Field2,...,"
    + ( long.Text != "" ? "YourLongField,":"" ) 
    +  "...,Fieldn )"
    + "values( FieldValue1,FieldValue2,...,"
    + ( long.Text != "" ? ( long.Text +","):"" ) 
    + "..., FieldValuesn );
      

  6.   

    解释如下:
    把需要添加的字段名要表明,然后各个字段的值相应给出,从中判断long.Text是否要加入。
      

  7.   

    "insert into loginc(long) values('"Convert.ToDouble(TextBox1.Text!=""?long.Text .Trim ():"默认值")+"')";