【问题标题】:OleDbCommand select does not return expected rowsOleDbCommand 选择不返回预期的行
【发布时间】:2015-04-15 22:17:52
【问题描述】:

我有两个 Access 表,即 Projects,包括 projectTitle 和 partyID 的行,以及 ProjectParty,包括 title 和 ID 的行。

私人无效btnSearch_Click(对象发送者,EventArgs e) { OleDbConnection 连接 = 新 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); 数据表 dt=新数据表(); 尝试 { conn.Open(); ole_da.填充(dt); } 捕捉(例外前) { MessageBox.Show(ex.ToString()); } dataGridViewDisplaySearchResults.DataSource = dt; conn.Close(); }

在上面的代码中,我试图检索 Projects Access 数据库表的值。第二个 if 成功,它将查询的行加载到 DataGridView 中。但是第一个 if(当为 true 时)不会返回预期值。实际上,它不会将任何内容加载到 DataGridView 中。我不知道为什么当我尝试基于 projectTitle 进行选择时查询不起作用。我尝试调试,但不知道将哪些参数传递给 select 命令。我哪里错了?

【问题讨论】:

  • 对于第一个 if (如果为真),我在 dataGridViewDisplaySearchResults 中只得到一个空行

标签: c# ms-access


【解决方案1】:

而不是txtProjectTitle.ToString()在第一个条件,是不是txtProjectTitle.Text

【讨论】:

  • 谢谢。我修复了它,但在 datagridview 中仍然一无所获。
  • 您的代码运行良好。 db 中的 projectTitle 值中可能有一些空间?你尝试过不同的值吗?
  • 好的,谢谢。它适用于其他值。那是什么词?我不明白:(
猜你喜欢
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多