【发布时间】:2021-08-16 02:16:52
【问题描述】:
尝试运行下面的代码,这样当用户从 Combobox 中选择 ID 时,我的数据库中具有该 ID 的任何字段都会填写表单中的标签。
屏幕截图中的此错误不断出现。我是 c# 编程的新手,所以,一些友好的帮助会很棒:)
private void button1_Click_1(object sender, EventArgs e)
{
try
{
con.Open();
OleDbCommand
command = new OleDbCommand("SELECT * FROM tbl_newsurvey WHERE ID= '" + comboBoxID.Text + "'");
command.Connection = con;
cmd.Parameters.AddWithValue("ID", comboBoxID.SelectedIndex.ToString());
OleDbDataReader selectreader = command.ExecuteReader();
while (selectreader.Read() == true)
{
string name = selectreader["txtname"].ToString();
lblname.Text = Name;
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error" + ex);
}
【问题讨论】:
-
tbl_newsurvey中的ID列的类型是什么?另外,您似乎在 trying 使用查询参数(这很好!)...但您实际上并没有在查询中使用查询参数 - 您只是放置了文本版本。 -
(我希望查询以
WHERE ID=?结尾。我们不知道您是否真的要传入选定的索引或选定的值......)跨度> -
tbl_newsurvey中ID的类型是
Number -
我正在使用 MS Access
-
我不知道我做了什么,但我将数据类型更改为短文本,然后更改为长文本以查看和测试。错误消失了,但每当您单击按钮时,它会在标签中显示为
form name
标签: c# error-handling type-mismatch