我有以下代碼:OracleDataReader HasRows拋出無效號碼特殊
int count = 0;
OracleDataReader dr;
parameters = new Dictionary<string, string>();
parameters.Add("Username", UserName);
query = "Select KEY from TABLE1 where USERID=:Username AND KEY IN(";
foreach (string Location in Locations)
{
query = query + ":Loc" + count.ToString() + ",";
parameters.Add("Loc" + count.ToString(), Location);
count++;
}
query=query.TrimEnd(',');
query = query + ")";
dr=objConexion.ExecuteQuery(query, parameters, objConexion.OracleCnn);
public OracleDataReader ExecuteQuery(String query, Dictionary<string,string> Parameters, OracleConnection oracleCnn)
{
OracleDataReader OracleDr;
OracleCommand OracleCmd;
try
{
OracleCmd = oracleCnn.CreateCommand();
OracleCmd.CommandText = query;
foreach (KeyValuePair<string, string> kvp in Parameters)
{
OracleCmd.Parameters.AddWithValue(kvp.Key, kvp.Value);
}
OracleCmd.Prepare();
OracleDr = OracleCmd.ExecuteReader();
}
catch
{
OracleDr = null;
}
return OracleDr;
}
出於某種原因,代碼工作正常,有時和其他它doesn't,調試我發現後,當它doesn't工作中, Datareader的「HasRows」方法有一個例外,特別是一個無效數字例外。我試圖直接在DBMS上運行結果查詢,並且它執行完美,有誰知道爲什麼會發生這種異常?我錯過了什麼?
你能提供例外嗎?或者它只是無效的號碼? - 當字符串轉換爲數字失敗時,在oracle中拋出InvalidNumber。請提供表格說明和列類型。 – Christian13467
ORA-01722:數字無效,但在調試時只看到:HasRows \t'dr.HasRows'生成一個異常'System.Data.OracleClient.OracleException'。他們所選擇的Key列是一個INTEGER,UserID是一個varchar2 – user3255067