Я использую Oledb в качестве своей базы данных и пытаюсь обновить столбец «Состояние» в моей БД, когда пользователь подключается и выходит из системы. Так и получается ..
Когда пользователь нажимает, он запрашивает столбец «Status» БД, был ли он «IN», «OUT» или ранее пустым. Когда запрашивается значение «IN», статус будет установлен на «OUT» в настоящее время и наоборот. Все обновления работают именно так, как я хочу, за исключением того, что предупреждение " NullReferenceException было необработанным ", которое продолжает появляться в этой строке каждый раз, когда я запускаю ее, и я не могу продолжать работать дальше: str = cmd1 .ExecuteScalar () ToString ();.
Я очень новичок в C #, и было бы хорошо, если бы кто-нибудь подробно объяснил мне, как я могу это исправить. Спасибо!
// prepare command string
string selectString = @"SELECT Status FROM jiahe where [Tag ID] = '" + textBox1.Text + "'";
// 1. Instantiate a new command with command text only
OleDbCommand cmd = new OleDbCommand(selectString, objConnection);
// 2. Set the Connection property
cmd.Connection.Open();
// 3. Call ExecuteNonQuery to send command
string str = cmd.ExecuteScalar().ToString();
cmd.Connection.Close();
if (str.Length == 2 || str.Length == 0)
{
//MessageBox.Show("Status: " + str);
// prepare command string
string updateString = @"update jiahe set Status = 'OUT' where [Tag ID] = '" + textBox1.Text + "'";
// 1. Instantiate a new command with command text only
OleDbCommand cmd1 = new OleDbCommand(updateString, objConnection);
// 2. Set the Connection property
cmd1.Connection.Open();
// 3. Call ExecuteNonQuery to send command
str = cmd1.ExecuteScalar().ToString();
MessageBox.Show("Status: OUT");
cmd1.Connection.Close();
}
else
{
//string str1 = cmd2.ExecuteScalar().ToString();
//MessageBox.Show("Status: " + str);
// prepare command string
string updateString = @"update jiahe set Status = 'IN' where [Tag ID] = '" + textBox1.Text + "'";
// 1. Instantiate a new command with command text only
OleDbCommand cmd1 = new OleDbCommand(updateString, objConnection);
// 2. Set the Connection property
cmd1.Connection.Open();
// 3. Call ExecuteNonQuery to send command
//string str1 = cmd2.ExecuteScalar().ToString();
str = cmd1.ExecuteScalar().ToString();
MessageBox.Show("Status: IN");
cmd1.Connection.Close();
}
}