如何读取ms access数据库中的数据并将其显示在列表框中。我有代码在这里,但我有错误。
private void button3_Click(object sender, EventArgs e)
{
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\Sisc-stronghold\mis!\wilbert.beltran\DataBase\DataStructure.accdb"))
using(OleDbCommand cmd = new OleDbCommand(" SELECT * from TableAcct", conn))
{
conn.Open();
OleDbDataReader Reader = cmd.ExecuteReader();
//if (Reader.HasRows)
if (Reader.HasRows)
{
Reader.Read();
listBox1.Text = Reader.GetString("FirstName");
}
} 错误如下: 1.错误1最佳重载方法匹配for'System.Data.Common.DbDataReader.GetString(int)‘有一些无效参数。2.错误2参数“%1”:无法从“string”转换为“int”
发布于 2013-02-28 14:39:19
试试这个,
List<String> firstName = new List<String>();
List<String> lastName = new List<String>();
private void loadButton_Click(object sender, EventArgs e)
{
cn.Open();
OleDbDataReader reader = null;
cmd = new OleDbCommand("select* from Records", cn);
reader = cmd.ExecuteReader();
while (reader.Read())
{
firstName.Add(reader["FirstName"].ToString());
lastName.Add(reader["LastName"].ToString());
}
cn.Close();
}然后在你的搜索按钮中插入这个
private void searchButton_Click(object sender, EventArgs e)
{
clearSearchResult();
try
{
int totalItems = FirstName.Count;
int count = 0;
while (count < totalItems)
{
if (textBox6.Text == FirstName[count].ToString())
{
listBox1.Items.Add(FirstName[count].ToString());
count = 100;
}
else
{
count++;
}如果您想要在listBox1_SelectedIndexChanged中显示"FirstName"的信息,那么使用它是很好的。这里有一个例子,
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int totalItems = lastName.Count;
int count = 0;
while (count < totalItems)
{
if ((listBox1.SelectedItem.ToString()) == firstName[count].ToString()))
{
textBox1.Text = firstName[count].ToString();
textBox2.Text = lastName[count].ToString();
count = 100;
}
else
{
count++;
}
}希望这能帮上忙
发布于 2013-02-28 13:51:40
GetString()接受整数作为参数,而不是字符串。这意味着您必须使用列的索引。
在您的特定环境中,因为"FirstName“是第二列,所以索引应该是1:
listBox1.Text = Reader.GetString(1);http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbdatareader.getstring.aspx
发布于 2013-02-28 13:54:26
变化
listBox1.Text = Reader.GetString("FirstName");至
listBox1.Text = Reader.GetString(0); // zero base ordinal of columnhttps://stackoverflow.com/questions/15128361
复制相似问题