OleDbCommand select 没有 return 预期行
OleDbCommand select does not return expected rows
我有两个Access table,分别是Projects,包括projectTitle 和partyID 行,以及ProjectParty,包括title 和ID 行。
private void btnSearch_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=HesabKetab.accdb;Persist Security Info=False;";
//在数据库中搜索
OleDbCommand oleCmd = new OleDbCommand();
oleCmd.Connection = conn;
如果(radioBtnByTitle.Checked)
{
oleCmd.CommandText = "SELECT * FROM Projects WHERE projectTitle=@projectTitle";
oleCmd.Parameters.AddWithValue("@projectTitle", txtProjectTitle.Text);
}
否则如果(radioBtnByParty.Checked)
{
oleCmd.CommandText = "SELECT * FROM Projects WHERE partyID=@partyID";
oleCmd.Parameters.AddWithValue("@partyID", comboParty.SelectedValue.ToString());
}
//执行查询
OleDbDataAdapter ole_da = new OleDbDataAdapter(oleCmd);
DataTable dt= new DataTable();
尝试
{
conn.Open();
ole_da.Fill(dt);
}
赶上(异常前)
{
MessageBox.Show(ex.ToString());
}
dataGridViewDisplaySearchResults.DataSource = dt;
conn.Close();
}
在上面的代码中,我试图检索 Projects Access 数据库 table 的值。第二个 if 成功并将查询的行加载到 DataGridView 中。但是第一个 if (当为真时)没有 return 预期值。事实上,它不会将任何内容加载到 DataGridView 中。我不知道为什么当我尝试基于 projectTitle 执行 select 时查询不起作用。我尝试调试但不知道哪些参数被传递给 select 命令。我哪里错了?
而不是第一个条件中的txtProjectTitle.ToString(),是不是txtProjectTitle.Text
我有两个Access table,分别是Projects,包括projectTitle 和partyID 行,以及ProjectParty,包括title 和ID 行。
private void btnSearch_Click(object sender, EventArgs e) { OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=HesabKetab.accdb;Persist Security Info=False;"; //在数据库中搜索 OleDbCommand oleCmd = new OleDbCommand(); oleCmd.Connection = conn; 如果(radioBtnByTitle.Checked) { oleCmd.CommandText = "SELECT * FROM Projects WHERE projectTitle=@projectTitle"; oleCmd.Parameters.AddWithValue("@projectTitle", txtProjectTitle.Text); } 否则如果(radioBtnByParty.Checked) { oleCmd.CommandText = "SELECT * FROM Projects WHERE partyID=@partyID"; oleCmd.Parameters.AddWithValue("@partyID", comboParty.SelectedValue.ToString()); } //执行查询 OleDbDataAdapter ole_da = new OleDbDataAdapter(oleCmd); DataTable dt= new DataTable(); 尝试 { conn.Open(); ole_da.Fill(dt); } 赶上(异常前) { MessageBox.Show(ex.ToString()); } dataGridViewDisplaySearchResults.DataSource = dt; conn.Close(); }
在上面的代码中,我试图检索 Projects Access 数据库 table 的值。第二个 if 成功并将查询的行加载到 DataGridView 中。但是第一个 if (当为真时)没有 return 预期值。事实上,它不会将任何内容加载到 DataGridView 中。我不知道为什么当我尝试基于 projectTitle 执行 select 时查询不起作用。我尝试调试但不知道哪些参数被传递给 select 命令。我哪里错了?
而不是第一个条件中的txtProjectTitle.ToString(),是不是txtProjectTitle.Text