我建了一个视图:
create or replace view v_test as
select a.*,a.rowid as vkey from test
sql = "select * from v_test";
...
dt.PrimaryKey = new DataColumn[] { dt.Columns["vkey"] };//运行到这里报错:这些列当前不具有唯一值请问为什么会出错呢?oracle中的rowid总不可能会重复吧?

解决方案 »

  1.   

    dt 设置之前,debug 看一下是不是数据有问题。
      

  2.   

    sql语句中没有选择主键id吧!
      

  3.   

    这些列当前不具有唯一值--------1:数据有重复
    2:create   or   replace   view   v_test   as 
    select   a.*,a.rowid   as   vkey   from   test 
      我好象没看到a属于谁啊!
    create   or   replace   view   v_test   as 
    select   a.*,a.rowid   as   vkey   from   test  a
      

  4.   

    哦,不好意思,视图的SQL少了一个a
    应该就是:
    create       or       replace       view       v_test       as   
    select       a.*,a.rowid       as       vkey       from       test     a
      

  5.   

    用这么长时间oracle了、没这么玩过
    你可以试验一下把sql 以 dataReader 方式执行
    一行行的往 DataTable 里插入看看那行什么样的数据出错了;