2015-05-08 71 views
-2

如何在使用C#的MS Access数据库中找不到结果时显示消息框?如何在MS Access DB中找不到结果时显示消息框?

我使用这个代码搜索:

connection.Open(); 
OleDbCommand command = new OleDbCommand(); 
command.Connection = connection; 
string query = "SELECT * FROM Emp WHERE emp_ID LIKE '" + textBox5.Text + "'"; 
command.CommandText = query; 
OleDbDataReader reader = command.ExecuteReader(); 
while (reader.Read()) 
{ 
    slip.Text = reader["emp_ID"].ToString(); 
} 
connection.Close();     

回答

3

您可以使用HasRows property

获取一个值,用于指示OleDbDataReader 是否包含一个 或多行

if(reader.HasRows) 
{ 

} 
else 
{ 
    // Show your message box here 
} 

另外你应该总是使用parameterized queries。这种字符串连接对于SQL Injection攻击是开放的。

并使用using statement处置你的OleDbConnectionOleDbCommandOleDbDataReader自动代替手动调用.Close().Dispose()方法。

using(var connection = new OleDbConnection(conString)) 
using(var command = connection.CreateCommand()) 
{ 
    command.CommandText = "SELECT * FROM Emp WHERE emp_ID LIKE ?"; 
    command.Parameters.AddWithValue("?", "%" + textBox5.Text + "%"); 

    using(var reader = command.ExecuteReader()) 
    { 
     if(reader.HasRows) 
     { 
      while (reader.Read()) 
      { 
       slip.Text = reader["emp_ID"].ToString(); 
      } 
     } 
     else 
     { 
      // Show your message box here 
     } 
    } 
} 
相关问题