如果只想读取数据(而不更新数据),则不必将它存储在数据集内。相反,可以直接从数据库读出数据并读入应用程序
这时可以使用数据读取器来操作,可以使代码简单化。
如果程序需要通过查询结果执行连续的只读传递,则可以使用数据读取器对象来代替填充数据集。数据读取器对象从数据源获取数据,并将这些数据直接传递给应用程序。通常,数据读取器对象用于当不需要在数据集内缓存数据时对数据进行只读、只能向前的访问。(数据适配器本身使用数据读取器对象来填充数据集。)显示数据库信息的 Web 窗体页便是一个例子;由于每次往返都要重新创建 Web 窗体页,因此在数据集内存储数据常常没有用。
Visual Studio 提供四个数据读取器对象,
OleDbDataReader数据读取对象,它是只读,笔直向前方式查询的。下面的代码演示了读取表中所有行所有字段。
p rivate void button2_Click(object sender, EventArgs e)
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\flList.mdb" + ";Persist Security Info=True");
cn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = cn;
cmd.CommandText = "select * from list";
//OleDbDataReader数据读取器为直前只读方式
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
//Debug.WriteLine(reader[1].ToString());
richTextBox1.Text += reader[0].ToString();
richTextBox1.Text += "\n";
richTextBox1.Text += reader[1].ToString();
richTextBox1.Text += "\n";
richTextBox1.Text += reader[2].ToString();
richTextBox1.Text += "\n";
richTextBox1.Text += reader[3].ToString();
richTextBox1.Text += "\n";
}
reader.Close();
}