簡體   English   中英

c#使用文本框的Listview搜索

[英]c# Listview Search using Textbox

我有一個ac#windows表單,可以將ID, Name,Birthday保存到我的Employee表中。 我使用這些代碼使用“ Save Button將數據保存到表中:

private void Save_Click_1(object sender, EventArgs e)
    {
        try
        {
            MainDatabaseDataSetTableAdapters.EmployeeTableAdapter employee = new MainDatabaseDataSetTableAdapters.EmployeeTableAdapter();
            employee.InsertQuery(textBox1.Text.Trim(),
                textBox2.Text.Trim(),
                textBox3.Text.Trim());


            MessageBox.Show("Saved");

        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

使用此查詢:

插入員工(ID,姓名,生日)值(@ ID,@ Name,@ Birthday)

我使用以下代碼使用“ Populate Button將保存的數據從數據庫顯示到Listview

private void Populate_Click(object sender, EventArgs e)
    {
        listView1.Items.Clear();

        DataTable dtable = mainDatabaseDataSet.Tables["Employee"];

        for (int i = 0; i < dtable.Rows.Count; i++)
        {
            DataRow drow = dtable.Rows[i];

            if (drow.RowState != DataRowState.Deleted)
            {
                ListViewItem item = new ListViewItem(drow["ID"].ToString());
                item.SubItems.Add(drow["Name"].ToString());
                item.SubItems.Add(drow["Birthday"].ToString());

                listView1.Items.Add(item);
            }
        }

所以我現在的問題是我對如何使用textboxSearchButtonlistview放置搜索SearchButton

我有一個SearchQuery

選擇ID,姓名,生日(來自員工所在位置)
(名稱= @名稱)

我以為可以將其插入到我的SearchButton但我不知道如何。

請有人幫助。

在我使用此代碼填充列表視圖之前

 DataTable dtable = mainDatabaseDataSet.Tables["Employee"];

我使用此代碼進行搜索,並且有效。 我使用以下代碼設置數據庫連接:

 public SqlCeConnection connection = new SqlCeConnection(@"Data Source = C:\...\...\...");

然后,我在SearchButton插入以下代碼:

 private void button2_Click(object sender, EventArgs e)
    {


        SqlCeCommand search = new SqlCeCommand("SELECT * FROM Employee Where Name like '%" + Search.Text + "%'", connection);


        try
        {
            SqlDataReader datareader = search.ExecuteReader();


            while (datareader.Read())
            {
                ListViewItem item = new ListViewItem(datareader["ID"].ToString());
                item.SubItems.Add(datareader["Name"].ToString());
                item.SubItems.Add(datareader["Birthday"].ToString());


                listView1.Items.Add(item);
            }
        }


        catch (SqlException ex)
        {
            MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

但這不是我老師想要的。 他想看看我如何使用此代碼填充Listview進行搜索

DataTable dtable = mainDatabaseDataSet.Tables["Employee"];

我知道這里有人可能對此有一個想法。 請幫我。

您還可以過濾數據行。 參考

https://msdn.microsoft.com/zh-CN/library/way3dy9w(v=vs.110).aspx

像dtable.Select(Name = textbox1.text);

您可以在SearchButton單擊處理程序中設置dtable.DefaultView.RowFilter屬性,然后迭代DataTable.DefaultView而不是Populate_Click方法中的表行。

我只是自己解決了。 感謝您瀏覽我的問題。 這是我使用的代碼

 public MainDatabaseDataSet.EmployeeDataTable getData(string data)
    {
        MainDatabaseDataSetTableAdapters.EmployeeTableAdapter returnEmployee = new MainDatabaseDataSetTableAdapters.EmployeeTableAdapter();
        return returnEmployee.GetDataByName(this.textBox4.Text.Trim());
    }

    private void Search_Click(object sender, EventArgs e)
    {
        listView1.Items.Clear();

        try
        {

            MainDatabaseDataSet.EmployeeDataTable GetName = getData(this.Search.Text);
            MainDatabaseDataSet.EmployeeRow GetName2 = (MainDatabaseDataSet.EmployeeRow)GetName.Rows[0];


            for (int i = 0; i < GetName.Rows.Count; i++)
            {
                DataRow drow = GetName.Rows[i];

                if (drow.RowState != DataRowState.Deleted)
                {
                    ListViewItem item = new ListViewItem(drow["ID"].ToString());
                    item.SubItems.Add(drow["Name"].ToString());
                    item.SubItems.Add(drow["Birthday"].ToString());

                    listView1.Items.Add(item);
                }


            }
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }


    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM