我有一个c#窗体,可以将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);
}
}
使用此查询:
INSERT INTO员工 (身份证,姓名,生日)价值(@ ID,@姓名,@生日)
我使用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);
}
}
所以我现在的问题是,我对如何使用listview
和textbox
SearchButton
进行搜索没有任何想法。
我有SearchQuery
:
SELECT ID,Name,Employ FROM Employee WHERE
(Name = @Name)
我想我可以在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"];
我知道有人可以就如何做到这一点有一个想法。请帮帮我。
答案 0 :(得分:0)
您还可以过滤数据行。参阅
https://msdn.microsoft.com/en-us/library/way3dy9w(v=vs.110).aspx
喜欢dtable.Select(Name = textbox1.text);
答案 1 :(得分:0)
您可以在SearchButton
点击处理程序中设置dtable.DefaultView.RowFilter属性,并在DataTable.DefaultView
方法中迭代Populate_Click
而不是表格行。
答案 2 :(得分:0)
我自己解决了这个问题。 谢谢你浏览我的问题。这是我使用的代码
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);
}
}