在調試我的wcf調用它跳過while循環而不讀取內部數據。我一直在通過SO和msdn尋求幫助,似乎沒有什麼突出的。任何人都有什麼線索可以知道我錯過了什麼或者是爲了什麼導致這個循環不能迭代?c#跳過while循環
解決方案:這是一個數據庫問題,一旦我更新了Oracle DB值,查詢在SQL開發人員中運行並且調試在VS2010中運行。
感謝
using (connection)
{
try {
connection.ConnectionString = connString;
OracleCommand command = new OracleCommand(sqlString, connection);
connection.Open();
OracleDataReader reader = command.ExecuteReader();
while (reader.Read()) {
td.TNAME = reader.IsDBNull(0) ? " " : reader.GetValue(0).ToString();
td.TASK = reader.IsDBNull(1) ? " " : reader.GetValue(1).ToString();
td.STATUS = reader.IsDBNull(2) ? " " : reader.GetValue(2).ToString();
td.COMPLETE = reader.IsDBNull(3) ? " " : reader.GetValue(3).ToString();
td.PRIORITY = reader.IsDBNull(4) ? 0 : Convert.ToInt32(reader.GetValue(4));
tl.Add(td);
}
//while (reader.NextResult());
reader.Close();
} catch (Exception ex) {
myErr = ex.Message;
}
}
return tl;
什麼是你的查詢語句?只需運行查詢並檢查在Oracle中顯示的記錄數 –
如果它沒有進入'while',我想'reader.Read()'返回'false'。您是否嘗試過調試以查看您是否首先獲得了任何數據?除此之外,'catch'看起來像吞嚥任何異常,除非你在稍後的某個地方檢查'myErr'。例如,你確定你的連接是開放的嗎? – CompuChip
是的SQL語句在SQL Developer中工作,您的權限爲reader.HasRows和reader.Read爲空。我的連接是開放的,但必須是問題所在。謝謝你指出我正確的方向。我也在調查,我會在我糾正這個問題後回覆答案。 thx – atlMapper