【发布时间】:2015-12-03 18:46:51
【问题描述】:
我对 C# 和编码非常陌生,所以希望您能耐心等待我。 :)
我正在使用 Visual Studio 2013,我建立了我的数据库连接并且它工作正常。我明天将发布我的代码,但这里是我的第一个示例:
sSQL = "select person_id from person where person_email_adress = "+ email;
cmd.CommandText = sSQL
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
while(dr.Read()){
person_id = dr.GetString(0)
}
这很好,但我的问题在于第二个 SQL 命令:
sSQL = "select article from purchase where person_id = "+ person_id;
cmd.CommandText = sSQL
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
while(dr.Read()){
// random stuff
}
我的问题是,我的第二个 SqlDataReader 没有返回任何行,但如果我在 SQLDeveloper 中使用相同的 person_id 运行相同的查询,我会得到超过 10 个命中。
我知道dr.Read() 是空的,因为我做了以下事情:
if(!dr.HasRow) {
MessageBox.text("This query is empty");
} else {
MessageBox.text("This query got some hit");
}
我想进去看看这些行,但我总是遇到问题,dr 是空的。
我还使用MessageBox 检查了 SQL 输出是否正确,并且正确。
现在呢?
我希望您能理解我糟糕的英语,如果您有任何问题,我随时为您服务。 :)
感谢和问候,
Xplosio
【问题讨论】:
-
您是否在调试器中逐行运行它以确保
person_id具有您期望的值? -
是的,它给了我我期望的价值 (10369)
-
你应该在阅读后关闭OracleDataReader:
dr.Close();
标签: c# sql oracle connection