我正在使用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子句中传递文本值时返回空表。
答案 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;
}
有时候,愚蠢的错误让你很喜欢: - )
:-)