private void button3_Click(object sender, EventArgs e)
{
try {
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "select action from rvrait";
OleDbDataReader reader = command.ExecuteReader();
richTextBox1.Text = (reader["action"].ToString());
connection.Close();
}
catch(System.Data.OleDb.OleDbException)
{
}
答案 0 :(得分:0)
您的问题是缺少reader.Read()
电话。创建OleDbDataReader后,您无法开始获取您感兴趣的列的内容。最初,读取器不位于查询返回的第一条记录上(如果有)。
private void button3_Click(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "select action from rvrait";
OleDbDataReader reader = command.ExecuteReader();
if(reader.Read())
richTextBox1.Text = (reader["action"].ToString());
connection.Close();
}
通过这种方式,您可以在第一条记录上移动阅读器,如果调用Read()返回true,则可以获取列的内容。
这种模式被设想为便于阅读多个记录
例如......
List<string> listOfActions = new List<string>();
while(reader.Read())
listOfActions.Add(reader["action"].ToString());
另请注意,我已删除空的try / catch。如果您不打算对例外做任何事情,应该始终避免这种情况,因为如果您离开,您实际上是在隐藏可能的错误