cmdth.CommandText = "insert into 销售退货信息表 values('" + this.textBox7.Text.Trim() + "','" + Convert.ToInt64(this.comboBox2.Text.Trim()) + "','" + this.comboBox3.Text.Trim() + "','" + this.comboBox4.Text.Trim() + "','" + Convert.ToDateTime(this.dateTimePicker1.Text.Trim()) + "','" + Convert.ToDateTime(this.dateTimePicker2.Text.Trim()) + "','" + Convert.ToSingle(this.textBox8.Text.Trim()) + "','" + this.textBox3.Text.Trim() + "','" + Convert.ToInt64(this.textBox6.Text.Trim()) + "','" + Convert.ToInt32(this.textBox4.Text.Trim()) + "','" + Convert.ToSingle(this.textBox2.Text.Trim()) + "','" + this.textBox5.Text.Trim() + "')";                       
 cmdth.ExecuteNonQuery();
就在这一直提示我输入的字符串格式不正确。可究竟是什么问题我也不明白。我都是按照数据库里类型填的。
希望大家看看
                       

解决方案 »

  1.   

    有个控件的值没有取到了,为空
    有可能:
    this.comboBox3.Text.Trim() 
    没有
    试试
    comboBox3.selectedvalueitem.text
      

  2.   

    可能是需要转换为Int型的值却取到了字符串,特别是下拉框控件需要看下
      

  3.   

    insert into 销售退货信息表 values()
    你values前面的参数呢?
    insert into shit (name,zip,city) valuse (@name,@zip,@city)
      

  4.   

    '" + Convert.ToSingle(this.textBox2.Text.Trim()) + "'
    不是ToString吗。。额
    而且直接传串不好容易被注入
    既然不想存储过程就传参数吧
    就是加@的。
      

  5.   


    我想说的是,你并没有按照数据库各个字段的类型去做,如果你用的Oralce,可能上面的语句是正确,但是如果你用的Sqlserver数据库或Access,那就对不起在写sql语句的时候,只要求字符串字段的值两侧用单引号括起来,你再看看上面的sql语句:'" + Convert.ToInt64(this.comboBox2.Text.Trim()) + "'这里的'符号,是不是应该去掉,如果不去掉,它会当字符串进行处理,所以提示"输入的字符串格式不正确"是正常的了
      

  6.   

    显示一下 cmdth.CommandText 的值,看看是否和你想象的一样正确。
      

  7.   

    "','" + Convert.ToInt64(this.comboBox2.Text.Trim()) + "','" 这个数据对应的字段在表中是int类型吗?如果是int类型的话,sql语句就有问题了 这个字段的前后就不用单引号了