我正在尝试从Access数据库中获取数值。我下面写的代码有时会起作用,有时它不会。当我运行下面的代码时,我得到一个带有正确答案的MessageBox(始终)。但是,当我以相同的方式运行代码,但不是要求MessageBox,我要求通过label1.text = TValue在应用程序的标签中显示该值我在此行中得到以下提到的错误消息:
string SearchValue = command.ExecuteScalar().ToString();
我也可以在数据库中使用不同的列运行代码(用整数填充),但我有同样的奇怪行为。谁能告诉我我做错了什么?
我收到以下错误消息:
An unhandled exception of type 'System.NullReferenceException' occurred in OCR_Interface.exe
Additional information: Object reference not set to an instance of an object.
我写了以下函数:
static public string GetDataFromDatabase(string TableName, string SearchColumns, string TargetRow, int TargetValue)
{
OleDbConnection con = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = P:\Root_Data.accdb");
con.Open();
string SQLstr = "SELECT " + SearchRow + " FROM RootData WHERE " + TargetRow + "=" + TargetValue;
OleDbCommand command = new OleDbCommand(SQLstr, con);
string SearchValue = command.ExecuteScalar().ToString();
con.Close();
return SearchValue;
}
我按以下方式调用该函数:
int TestValue = 3000;
TestValue .ToString();
string TValue = GetDataFromDatabase("RootData", "Ticker", "Quantity", TestValue);
MessageBox.Show(TValue);