【问题标题】:Search Listview using Textbox in C# from SQL Database从 SQL 数据库中使用 C# 中的文本框搜索 Listview
【发布时间】:2022-05-06 01:50:27
【问题描述】:

我使用 VB.Net 中的后续代码使用 TextBox 在列表视图中搜索数据。此代码是 VB.NET 我已将其更改为 C# 根据我的理解,因为我是 C# 的新手,但这不起作用。

private void TextBox1_TextChanged(object sender, EventArgs e)
{
    SqlCommand cmd = new SqlCommand("Select * from Vendors Where VendorName Like'%" + TextBox1.Text + "%' or VendorID Like'%" + TextBox1.Text + "%'", con);
    SqlDataReader reader;
    con.Open();
    reader = cmd.ExecuteReader();
    cmd.Dispose();
    ListView1.Items.Clear();
    if (reader.HasRows)
    {
        while (reader.Read()) 
        {
            **ListView1.Items.Add(reader[0]);**
            ListView1.Items[ListView1.Items.Count - 1].SubItems.Add(reader.**item**[1]);
            ListView1.Items[ListView1.Items.Count - 1].SubItems.Add(reader.**Item**[2]);
            ListView1.Items[ListView1.Items.Count - 1].SubItems.Add(reader.Item[3]);
        }
    }
    reader.Close();
    con.Close();
}

我在ListView1.Items.Add(reader[0])(reader.item[1]) (在所有 3 列中输入项目)出现错误,任何人都可以指出更正此代码。提前致谢。

【问题讨论】:

    标签: c# sql listview search


    【解决方案1】:

    从这个角度来看,我可以看到你没有创建 ListViewItem 类的对象,而且这里 ListView1.Items.Add(reader[0]) 你没有转换你的索引器,所以也许这就是你得到的原因错误

    所以,首先您需要创建 ListViewItem 类的对象,然后在该 Item 上添加所有 SubItems,最后您需要将该 Item 添加到您的 ListView1

    会是这样的

    private void TextBox1_TextChanged(object sender, EventArgs e)
    {
        SqlCommand cmd = new SqlCommand("Select * from Vendors Where VendorName Like'%" + TextBox1.Text + "%' or VendorID Like'%" + TextBox1.Text + "%'", con);
        SqlDataReader reader;
        con.Open();
        reader = cmd.ExecuteReader();
        cmd.Dispose();
        ListView1.Items.Clear();
        if (reader.HasRows)
        {
            while (reader.Read()) 
            {
    
                ListViewItem item = new ListViewItem(reader[0].ToString()); // Or you can specify column name - ListViewItem item = new ListViewItem(reader["column_name"].ToString()); 
                item.SubItems.Add(reader[1].ToString());
                item.SubItems.Add(reader[2].ToString());
                item.SubItems.Add(reader[3].ToString());
                ListView1.Items.Add(item); // add this item to your ListView with all of his subitems
            }
        }
        reader.Close();
        con.Close();
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多