搞了一个下午,还是错误,为什么插入数据会出现如此另类的错误。求助啊
代码如下:
procedure Tdengji.Button1Click(Sender: TObject);
var
   csql:string;
begin
 with adoquery1 do
   begin
    //Active:=false;
    close;
    sql.Clear;
    sql.add('insert into customer values(:a,:b,:c,:d,:e,:f,:g,:h)');
    parameters.ParamByName('a').Value:=trim(edit1.Text);
    parameters.ParamByName('b').Value:=trim(edit2.text);
    parameters.ParamByName('c').Value:=trim(edit3.text);
    parameters.ParamByName('d').value:=trim(edit4.Text);
   parameters.ParamByName('e').value:=trim(edit5.text);
    parameters.ParamByName('f').value:=trim(combobox1.Text);
   //parameters.ParamByName('g').value:=1-radiogroup5.ItemIndex;
    parameters.ParamByName('g').value:=datetostr(datetimepicker1.DateTime);
   parameters.ParamByName('h').value:=datetostr(datetimepicker2.DateTime);
   execsql;
   //open
   end;每次一插数据就出现这个错误:应用程序在当前操作中使用错误类型的值。但是如果我的edit文本框插人的数据时数字时,程序就能够插入到数据库,如果添加的是中文或因为就出现上面的错误,数据库的数据类型为主键int自动编号,其他为char(10)和datetime类型,求助高人解答,急急急啊

解决方案 »

  1.   

    插入的数据跟你的表字段类型不对应,自己检查或者指定要插入的列,自增列不用
    insert into customer(a,b,c,d,e,f,g,h) values(...)
      

  2.   

    ADOQuery.sql.add(SQL);
    写一个sql语句,在运行的时候显示出sql语句,然后在查询分析器里执行,看看是什么错误就知道了
      

  3.   


    我插入的数据时全部插入,出来自增的字段,还需要用这样的语句customer(a,b,c,d,e,f,g,h)???
    SQL里插入全部字段不是不需要注明?
      

  4.   

    parameters.ParamByName('g').value:=datetostr(datetimepicker1.DateTime);
      parameters.ParamByName('h').value:=datetostr(datetimepicker2.DateTime);要用formatdatetime('yyyy-mm-dd',)函数来转成sqlserver的日期格式如果回答正确  请给我4个积分  急需
      

  5.   

    真想掉你!你這樣 哎  不說了  insert into tabe (a,b,c,d,).values (trim(edit1.text)....)
    為什麼不用CXDB控件呢!