[英]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);
}
}
所以我現在的問題是我對如何使用textbox
和SearchButton
在listview
放置搜索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.