在MS Access上使用WHERE子句读取列,通过组合框textvalue

时间:2011-06-27 03:27:35

标签: c# winforms ms-access-2003 oledbdataadapter

我正在使用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子句中传递文本值时返回空表。

1 个答案:

答案 0 :(得分:1)

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

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;
}

有时候,愚蠢的错误让你很喜欢: - )

:-)