我尝试从Access数据库中检索数据。我在一个类里写了函数,我得到了这个错误。所以,请任何人知道这个问题的答案,请让我知道如何解决它。下面的函数是在类中编写的,我需要知道如何使用这个函数向listview控件显示数据,以及如何通过load事件调用它。我试图解决这么多时间,但我仍然没有得到解决方案。
public List<String> displayRoom()
{
List<String> rooms = new List<String>();
String query = "select * from room";
cmd = new OleDbCommand(query, connect);
reader = cmd.ExecuteReader();
while(reader.Read()){
rooms.Add(reader["buyer_name"].ToString());
rooms.Add(reader["room_type"].ToString());
rooms.Add(reader["date_from"].ToString());
rooms.Add(reader["date_to"].ToString());
}
return rooms;
}
答案 0 :(得分:0)
如果你能从数据库中正确读取数据,那么只需在表格加载或表格类的constructor
中写下面一行:
//here dbClass is an instance of your database class
List<String> rooms = dbClass.displayRoom(); //though `get/load rooms()` would be more appropriate
foreach (string s in rooms)
{
ListViewItem lv=new ListViewItem(s);
listView1.Items.Add(lv); //listView1 is the ListView instance in your form
}
修改强>
如果您的Form
名称为Form
,则可以Form1_Load(object sender, EventArgs e)
或public Form1()
构造函数(调用InitializeComponent
之后),您可以将上述内容设置为{{1}}代码。
答案 1 :(得分:-2)
ExecuteReader需要打开连接:
connect.Open();
在
上方插入reader = cmd.ExecuteReader();
完成后关闭连接
}
connect.Close();
return rooms;
有关详细信息,请参阅MSDN