这个SQL语句在sqlserver里能运行吗?
提示什么错误?贴出来给我看看!

解决方案 »

  1.   

    楼主你的数据库是oracle?不是oracle的话,参数不是用?,sqlserver用@
      

  2.   

    你贴出的代码没有问题,update出错可能是你的更新值有问题,例数据类型,单引号等
      

  3.   

    是这样的,我本意是想从Sql Server做一个Access的备份,所以我首先用
    SqlDataAdapter.Fill(dt)//dt是DataTable
    然后我用上面的方法Update(dt)
    SelectCommand都是用的select * from tblAItem
    应该是没有问题的但是现在OleDbCommandBuilder 生成的Insert都有问题,这个时候我还没有Update呢,所以问题应该是出现在Insert语句上,我用SqlCommandBuilder试过,生成的Insert语句是正确的,但是OleDbCommandBuilder就不行,可是Access数据库只能用OleDbCommandBuilder
      

  4.   

    你试着将上面的SQL语句INSERT INTO tblAItem( ObjectID , ATerm , ID , Name , Type , Memo , Field ) VALUES ( ? , ? , ? , ? , ? , ? , ? )
    在数据库里验证一下,是不是缺少单引号!
      

  5.   

    这个东西的可能原因是数据库的数据类型不匹配
    更改oracle中表的数据类型为varchar
    然后重新看看

    表示乱码
    我以前遇到过类似的问题
    就是因为表的数据类型不对
      

  6.   

    不可能是类型的问题啊
    因为string str=custCB.GetInsertCommand().CommandText;在Update(dt)之前就已经生成了
    这时候还不知道用那个dt去Update呢
    怎么会出现?呢
    而同样的语句,我用SqlCommandBuilder就没有问题,生成的Insert语句是这确的
    如果是类型的问题,出错会提示类型不匹配,但是我现在是提示Insert语句出错
      

  7.   

    我的代码可以编译通过,我也单步执行看了,OleDbCommandBuilder生成的所有Command的CommandText都是不对,其中InsertCommand的CommandText就是INSERT INTO tblAItem( ObjectID , ATerm , ID , Name , Type , Memo , Field ) VALUES ( ? , ? , ? , ? , ? , ? , ? )
    为什么生成的Sql语句会不正确呢?
    我用SqlCommandBuilder生成正确的是这样的:
    INSERT INTO tblAItem( ATerm , ID , Name , Type , Memo , Field ) VALUES ( @p1 , @p2 , @p3 , @p4 , @p5 , @p6 )ObjectID在SqlServer和Access中都是主键
      

  8.   

    access和sqlserver的占位符不一样。
    一个是都用? 一个是使用@加变量名。使用access生成的insert语句,当然不能在sqlserver上使用。
      

  9.   

    不是的,我用Access的OleDataAdapter.Fill(dt)然后根据类型添加一行到dt上,然后Update(dt)还是不行,我是跟着msdn上的例子做的
    我修改dt都是根据类型的,而且出错也不是提示类型不对,而是提示Insert语句不对
    所以应该不是Access和SqlServer的关系,其实他们是通过中间的dt联系的而不是直接有关系
      

  10.   

    type 在sql 里是关键字。改
    INSERT INTO tblAItem( ObjectID , ATerm , ID , Name , [Type] , Memo , Field ) VALUES ( ? , ? , ? , ? , ? , ? , ? )
      

  11.   

    id,name都是关键词,可是我用SqlCommandBuilder生成的是正确的Insert语句啊?为什么OleDbCommandBuilder就会生成错的呢?