【发布时间】:2014-11-29 15:52:38
【问题描述】:
我的 sql 数据读取器有问题。每当我尝试读取数据时,它都会给我一个错误,提示在阅读器关闭时调用 Read 无效。请帮我解决问题
private void button1_Click(object sender, EventArgs e)
{
string name = this.textBox1.Text;
string connstring = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Gardezi\Documents\Visual Studio 2012\Projects\homeWork2\homeWork2\Database1.mdf;Integrated Security=True";
SqlConnection con = new SqlConnection(connstring);
string query = "Select * from diaryDB";
SqlCommand com = new SqlCommand(query, con);
SqlParameter p = new SqlParameter("name", name);
con.Open();
SqlDataReader d = com.ExecuteReader();
con.Close();
deleteResult r = new deleteResult(d);
r.Show();
}
这是deleteResult的构造函数
public deleteResult(SqlDataReader d)
{
InitializeComponent();
while (d.Read())
{
this.comboBox1.Items.Add((d["Title"] +"-" +d["Description"]).ToString());
}
}
【问题讨论】:
-
如果
DataReader的连接已关闭,您将无法访问它。它是数据库的开放流,而不是像DataTable这样的内存集合。所以在你关闭它之前调用deleteResult(多么奇怪的名字)。
标签: c# sqldatareader datareader