使用MS Access上的WHERE子句读取列,传递组合框文本值

本文关键字:组合 文本 Access MS 上的 WHERE 读取 子句 使用 | 更新日期: 2023-09-27 18:00:22

我正在开发一个用C#编写的windows应用程序,并使用MS Access 2003作为我的数据库。当我写查询时,我面临着一个奇怪的问题

SELECT * FROM mytable WHERE columnname='"+combobox.text+"' 

并且使用oledbadapter执行,则数据集可视化工具无法识别where子句并返回空表。而

SELECT * FROM mytable WHERE columnname='"+integervalue+"

将返回已筛选的列。

这是我的代码片段:

private void viewinfo_Click(object sender, EventArgs e){
    dataGridView1.Visible = true;
    OleDbCommand cmd;
    string schoolname = cmbschoolname.Text;
    OleDbDataAdapter da = new OleDbDataAdapter("select  * from tblmedic where medicalschool ='"+combobox.text+"'", conn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView1.DataSource = dt;
}

output:当我在where子句中传递文本值时,返回空表。

使用MS Access上的WHERE子句读取列,传递组合框文本值

我已经解决了这个问题。这是我的access2003表列中出现空格的情况。所以在where子句中选择列时使用了trim()来清除空格。

private void viewinfo_Click(object sender, EventArgs e){
    dataGridView1.Visible = true;
    OleDbCommand cmd;
    string schoolname = cmbschoolname.Text;
    OleDbDataAdapter da = new OleDbDataAdapter("select  * from tblmedic where medicalschool ='"+combobox.text.ToString().Trim()+"'", conn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView1.DataSource = dt;
}

有时愚蠢的错误会让你渴望:-)

:-)