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 就可以! 很奇怪哦
发现只要把字段类型变成 varchar2 就可以! 很奇怪哦
#5
不知道别的版本是不是也有这个问题,不过 varchar2 确实是 oracle 本身推荐的,应该是
microsoft 和 oracle 的配合问题,在以前有过其他的例子,这应该不是程序的问题
microsoft 和 oracle 的配合问题,在以前有过其他的例子,这应该不是程序的问题
#1
up
#2
up~~
#3
1里边所有字段都as成新的名字试一下。
#4
试过,不行
发现只要把字段类型变成 varchar2 就可以! 很奇怪哦
发现只要把字段类型变成 varchar2 就可以! 很奇怪哦
#5
不知道别的版本是不是也有这个问题,不过 varchar2 确实是 oracle 本身推荐的,应该是
microsoft 和 oracle 的配合问题,在以前有过其他的例子,这应该不是程序的问题
microsoft 和 oracle 的配合问题,在以前有过其他的例子,这应该不是程序的问题