在数据库更新的时候出现“对于不返回任何基表信息的 SelectCommand 不支持动态 SQL 生成。”不知道怎么解决,在网上查都说是主键问题,可是我数据库表是设的有主键的,select语句使用的是“*”,请大家帮忙回答!
另外这个问题和“对于不返回任何键列信息的 SelectCommand 不支持动态 SQL 生成。”是不是不一样?

解决方案 »

  1.   


                    OleDbCommand dbCommand = new OleDbCommand();
                    dbCommand.Connection = conn;
                    dbCommand.CommandText = "select * from sys_dbinfo t";
                    dataAdapter = new OleDbDataAdapter(dbCommand);
                    commandBuilder = new OleDbCommandBuilder(dataAdapter);
                    dataAdapter.InsertCommand = commandBuilder.GetInsertCommand();                dataAdapter.UpdateCommand = commandBuilder.GetUpdateCommand();
                    dataAdapter.DeleteCommand = commandBuilder.GetDeleteCommand();
                    dataAdapter.Fill(dataTable);
      

  2.   

    用的是ado.net吧!?  你是没有用build来构建查询语句。adapater必须有build.
      

  3.   

    你用的是SqlCommandBuilder更新的数据库,是吗?如果是,并且报以上错误,说明你更新的表中没有主键。在表中添加主键后,再试试。
      

  4.   

    access?我记得access必须列出所有列名的...不能用*或者省略某列..
      

  5.   

    ORACLE数据库,而且我的数据库表有主键。代码在上面!
      

  6.   

    找到一种解决办法,跟大家分享一下,具体见http://study.qqcf.com/web/716/217250.htm