如何在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();
    }

如何在c#中使用Like运算符使用ms access数据库

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使用%字符作为通配符。也许这就是你所想的。