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

output: where 句でテキスト値を渡すと、空のテーブルが返されます。

4

1 に答える 1

1

この問題は解決しました。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;
}

時々ばかげた間違いはあなたを何かのように渇望させます:-)

:-)

于 2011-06-27T12:22:03.897 に答える