如何在c#中使用Like运算符使用ms access数据库
本文关键字:运算符 ms access 数据库 Like | 更新日期: 2023-09-27 18:14:12
我正在为我们的项目制作一个Windows窗体应用程序,我的项目是关于调度系统的,我正试图从包含Day和Instructor的ms访问数据库中搜索数据。Day列只有两个值"MWF和TTH"。当我搜索MWF时,我想要包含MWF的所有数据显示到我的列表视图,但只有一个数据会显示。如何解决这个问题?
代码
public void Search()
{
c.OpenDb();
c.com.CommandType = CommandType.Text;
c.com.CommandText = "SELECT * FROM ScheduleInfo WHERE Day LIKE '%" + comboBox1.Text + "%' AND Instructor LIKE '%" + textBox9.Text + "%' ";
c.com.Connection = c.con;
c.dr = c.com.ExecuteReader();
if (c.dr.Read())
{
ListViewItem fp = new ListViewItem(c.dr["Day"].ToString());
fp.SubItems.Add(c.dr["Time"].ToString());
fp.SubItems.Add(c.dr["Instructor"].ToString());
fp.SubItems.Add(c.dr["Subject"].ToString());
fp.SubItems.Add(c.dr["Room"].ToString());
listView5.Items.Add(fp);
}
else
{
Notfound nf = new Notfound();
nf.ShowDialog();
if (nf.DialogResult == DialogResult.OK)
{
textBox9.Clear();
}
}
c.CloseDb();
}
private void button13_Click(object sender, EventArgs e)
{
Search();
}
将if (c.dr.Read())
改为while (c.dr.Read())
:
bool hasRecords = false;
while (c.dr.Read()) {
ListViewItem fp = new ListViewItem(c.dr["Day"].ToString());
fp.SubItems.Add(c.dr["Time"].ToString());
fp.SubItems.Add(c.dr["Instructor"].ToString());
fp.SubItems.Add(c.dr["Subject"].ToString());
fp.SubItems.Add(c.dr["Room"].ToString());
listView5.Items.Add(fp);
hasRecords = true;
}
if (!hasRecords) {
Notfound nf = new Notfound();
nf.ShowDialog();
if (nf.DialogResult == DialogResult.OK)
textBox9.Clear();
}
Access使用*字符作为通配符,而不是%字符。
http://www.techrepublic.com/article/10-tips-for-using-wildcard-characters-in-microsoft-access-criteria-expressions/SQL Server使用%字符作为通配符。也许这就是你所想的。