C# 从 Access 数据库读取数据
您好,想从给定 ID 的数据库中读取数据(不是 Premanent)。我正在使用以下代码:
OleDbConnection co = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb");
co.Open();
**OleDbCommand cmd = new OleDbCommand("SELECT * FROM Category1 Where ID = '"+textBox1.Text+"'", co);**
OleDbDataReader reader = cmd.ExecuteReader();
int i = 1;
while (reader.Read())
{
ListViewItem li = new ListViewItem(i.ToString());
li.SubItems.Add(reader.GetString(1));
li.SubItems.Add(reader.GetString(2));
li.SubItems.Add(reader.GetString(3));
li.SubItems.Add(reader.GetString(4));
listView1.Items.Add(li);
i++;
}
但它在代码的粗体行上显示一条错误消息:
条件表达式中的数据类型不匹配。
Hi want to read data from data base from the given ID (not Premanent). I am using the following code:
OleDbConnection co = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb");
co.Open();
**OleDbCommand cmd = new OleDbCommand("SELECT * FROM Category1 Where ID = '"+textBox1.Text+"'", co);**
OleDbDataReader reader = cmd.ExecuteReader();
int i = 1;
while (reader.Read())
{
ListViewItem li = new ListViewItem(i.ToString());
li.SubItems.Add(reader.GetString(1));
li.SubItems.Add(reader.GetString(2));
li.SubItems.Add(reader.GetString(3));
li.SubItems.Add(reader.GetString(4));
listView1.Items.Add(li);
i++;
}
but it shows me an error message on the Bold line of code:
Data type mismatch in criteria expression.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
ID字段是数字吗?您正在将它与字符串进行比较。这可能是问题的一部分。
Is the ID field numeric? You are comparing it to a string. That might be part of the problem.
就像其他人说的:听起来很像 ID 不是字符串。
但是,在将用户输入或任何变量添加到 SQL 语句中时,您应该使用参数: http://weblogs.sqlteam.com/jeffs/archive/2006/07/21/10728.aspx
Like other people said: it sounds very much like ID isn't a string.
However you should use parameters when adding user input or any variables to your SQL statement: http://weblogs.sqlteam.com/jeffs/archive/2006/07/21/10728.aspx
就像其他人说的:听起来工作很好
Like other people said: it sounds very good working