0
我需要找到在C#中的記錄,但我得到一個InvalidOperationException:使用OleDbCommand的Select語句拋出InvalidOperationException異常
public static Auto findAuto(int kfznr)
{
Auto retAuto = new Auto();
try
{
myOleDbConnection.Open();
string query = "SELECT * FROM Auto WHERE Auto.KFZNR = " + kfznr;
OleDbCommand select = new OleDbCommand();
select.Connection = myOleDbConnection;
select.CommandText = query;
OleDbDataReader reader = select.ExecuteReader();
while (reader.Read())
{
Auto at = new Auto(Convert.ToInt32(reader[0]), Convert.ToString(reader[1]), Convert.ToString(reader[2]));
retAuto = at;
}
}
catch (OleDbException e)
{
Console.WriteLine(e.ToString());
}
return retAuto;
}
我得到了while循環的錯誤在創建新的自動的。 當我在SQLDeveloper中運行相同的查詢時,我得到一條記錄(查看第一個屏幕截圖),但在我的C#程序中,我得到的行數/單元沒有數據。
當我徘徊讀者我獲得下面的圖片。它說,讀者有行:
希望你能幫我解決這個問題。
行列中的某一列是否可能爲空?這是Oracle嗎?如果列中有一個空字符串,它會返回null嗎? –
通過連接字符串編寫查詢是不好的做法,請使用參數來避免將惡意腳本注入數據庫。順便說一句,你不需要你的第一個自動課程。 –