Метод Read возвращает логическое значение, указывающее, были ли возвращены какие-либо строки или нет, поэтому вы всегда должны проверять это значение до получения доступа к результату чтения.
OdbcDataReader DR = cmd.ExecuteReader();
if (DR.Read() && DR.GetValue(0) != DBNull.Value)
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
DbConnection.Close();
РЕДАКТИРОВАТЬ ----
Также следует учитывать using
соединений, так как это обеспечит закрытие (удаление) соединения, даже если в операторе using происходит исключение.
Вы также можете избавиться от утверждения if
, но это дело вкуса.
Наконец, стандартным языком .NET будет сохранение строки подключения в разделе ConnectionStrings файла web.config. Это не показано ниже.
using(OdbcConnection DbConnection = new OdbcConnection(ConfigurationManager.AppSettings["ConnectionStr"]))
{
string cmdText = "SELECT Team_ID FROM team_details WHERE Team_Code=?";
OdbcCommand cmd = new OdbcCommand(cmdText, DbConnection);
cmd.Parameters.Add("?Code", OdbcType.VarChar).Value = tbCode.Text;
DbConnection.Open();
OdbcDataReader DR = cmd.ExecuteReader();
args.IsValid = DR.Read() && DR.GetValue(0) != DBNull.Value;
}