然后先写入数据
OracleConnection conn = new OracleConnection(@"Data Source=ORCL121;User ID=ARMANAGEDB0000;Password=ARMANAGEDB0000");
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = getInsertTmpSql();
int i_result = cmd.ExecuteNonQuery();
断点看了 i_result 是大于0的
然后查询数据
cmd.CommandText = reportSql;
OracleDataAdapter oda = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
oda.Fill(dt);
conn和cmd都没有变,跟写入数据时用的是相同的实例,断点看了dt的size是0,在数据中执行上面的两个sql时是可以查到数据,放到代码中执行不知道哪里出的问题,请帮助解答一下~~
9 个解决方案
#1
不是同一个会话吧
#2
为什么会不是用一个会话呢? 哪里的问题
#3
检查下是否是查询的时候重新打开连接,和插入时用的不是同一个会话。临时表的数据只对当前会话可见
#4
你看我贴的那段代码,cmd和conn没有变过,两个操作唯一的差别是 cmd.CommandText 变了
#5
C#代码我不熟悉。会话级的临时表,如果你确认往表里插入记录成功,那么查不出数据应该从会话上入手
#6
LZ 把次拼接出来的 SQL 语句都贴出来。
#7
自己回答一下,其实已经查到了,代码这么写没有问题。
只能说vs2010有点坑,我在查看dataset时,里面有个count属性一直是0,让我误以为没有查到数据,唉,不知道怎么设计的
只能说vs2010有点坑,我在查看dataset时,里面有个count属性一直是0,让我误以为没有查到数据,唉,不知道怎么设计的
#8
不错,问题解决了贴出答案供别人参考,赞一个
#9
DataSet 的count 不行,你得查 DataTable的 Rows.Count 才可以。
#1
不是同一个会话吧
#2
为什么会不是用一个会话呢? 哪里的问题
#3
检查下是否是查询的时候重新打开连接,和插入时用的不是同一个会话。临时表的数据只对当前会话可见
#4
你看我贴的那段代码,cmd和conn没有变过,两个操作唯一的差别是 cmd.CommandText 变了
#5
C#代码我不熟悉。会话级的临时表,如果你确认往表里插入记录成功,那么查不出数据应该从会话上入手
#6
LZ 把次拼接出来的 SQL 语句都贴出来。
#7
自己回答一下,其实已经查到了,代码这么写没有问题。
只能说vs2010有点坑,我在查看dataset时,里面有个count属性一直是0,让我误以为没有查到数据,唉,不知道怎么设计的
只能说vs2010有点坑,我在查看dataset时,里面有个count属性一直是0,让我误以为没有查到数据,唉,不知道怎么设计的
#8
不错,问题解决了贴出答案供别人参考,赞一个
#9
DataSet 的count 不行,你得查 DataTable的 Rows.Count 才可以。