我想从访问数据库中获取数据到c#中的文本文件,我已经编写了以下代码,但我没有得到任何输出

时间:2015-10-27 17:33:39

标签: c#

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)
    {
    }

1 个答案:

答案 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。如果您不打算对例外做任何事情,应该始终避免这种情况,因为如果您离开,您实际上是在隐藏可能的错误