这里是我的最后一根救命稻草了~~一个C# ORALCE 数据集填充的奇怪问题!~~会不会是2003 的bug ?请教mvp !

时间:2022-12-15 21:30:21
string strSQL=" select a.id,a.chinesename,a.provalue,a.englishname,b.fcontent_c as employeetype,c.chinaname  as salarytype            from xsalaryexpression a ,xselfvalue b,xwagetype c  where a.computetype='0'     and a.treeid = '010102'
 and b .ffieldid = '32'  and a.employeetype= b.fserial     and a.salarytype = c.id ";/* 第一个SQL*/

string strSQL="select id ,chinesename,provalue,englishname,employeetype,salarytype from xsalaryexpression where  computetype='0' and treeid = '010102'
 ";  /* 第二个SQL*/

                  System.Data.DataTable dt=new DataTable(); 
OleDbConnection cnn = Framework.CCommon.getConnection(Framework.EHR, true);
System.Data.OleDb.OleDbDataAdapter da = new OleDbDataAdapter(strSQL,cnn);
System.Data.DataSet ds = new DataSet();
//ds.Tables.Add(dt);
da.Fill(dt); 


我后台数据库是 ORACLE   问题在 provalue 这个字段, 他是LONG  型。我如果用
第二个SQL ,没有问题,填充到的 dt 是完整的。但是我如果换成 第一个SQL, 那个provalue 字段就出问题了,他里面的内容是不全的。

对第一个SQL, 监视的时候,
  dt.Rows [1].ItemArray [0]
 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb" 
 没有显示全,
对第二个SQL  ,监视的时候,
dt.Rows [1].ItemArray [0] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
显示就是完全的。

这2个语句执行的provalue 字段的结果是一样的。但是填充到dt 中就不同。

这个问题问过n多达人,都没有得到解决。sql 语句也变过很多种形式,
感觉只要sql 语句是和多表关联的就会出这个情况。

请教高手!

5 个解决方案

#1


up

#2


up~~

#3


1里边所有字段都as成新的名字试一下。

#4


试过,不行
发现只要把字段类型变成 varchar2 就可以! 很奇怪哦

#5


不知道别的版本是不是也有这个问题,不过 varchar2 确实是 oracle 本身推荐的,应该是
microsoft 和 oracle 的配合问题,在以前有过其他的例子,这应该不是程序的问题

#1


up

#2


up~~

#3


1里边所有字段都as成新的名字试一下。

#4


试过,不行
发现只要把字段类型变成 varchar2 就可以! 很奇怪哦

#5


不知道别的版本是不是也有这个问题,不过 varchar2 确实是 oracle 本身推荐的,应该是
microsoft 和 oracle 的配合问题,在以前有过其他的例子,这应该不是程序的问题