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

发布于 2024-11-17 01:30:16 字数 786 浏览 5 评论 0原文

我正在开发一个用 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;
}

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

I am working on a windows application written in C# and using MS Access 2003 as my database. I am facing strange problem, when I write the query

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

and execute using oledbadapter, the dataset visualizer doesn't recognise the where clause and returns empty table. Whereas

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

will return the filtered column.

Here is my code snippet:

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: returns empty table when I pass the text value in the where-clause.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷情 2024-11-24 01:30:16

我已经解决了这个问题。这是我的 access 2003 表列中有空格的情况。因此,在选择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;
}

有时愚蠢的错误会让你渴望任何东西:-)

:-)

I have resolved this issue. it was the case of empty spaces in my access 2003 table columns. so used a trim() to clear the spaces while selecting the columns in where clause.

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

Sometimes silly mistakes makes u crave like anything :-)

:-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文