从C#表单中搜索两个访问表



这是我的代码,我如何在具有相同textbox1.text值的表1和表2中搜索,换句话说:

//[表1]

| name     | age            |
| -------- | -------------- |
| aaa      | 12             |
| bbb      | 13             |
| ccc      | 14             |
//     [Table2]
| name     | gender         |
| -------- | -------------- |
| aaa      | male           |
| bbb      | female         |
| ccc      | male           |

如何获取年龄和性别值并将其显示在txt中。[名称]等于textbox1.Text时的文本

感谢

con.Open();
// search inside table1
OleDbCommand da = new OleDbCommand("SELECT * FROM [Table1] WHERE Table1.name='@name",con);

//search inside table2
OleDbCommand da2 = new OleDbCommand("SELECT * FROM [Table2] WHERE Table2.name='@name", con);

// give @name value to table1 and table2 as parameters
da.Parameters.AddWithValue("@name",textBox1.Text);
da2.Parameters.AddWithValue("@name", textBox1.Text);
// its time for executing 
OleDbDataReader dr = da.ExecuteReader();
OleDbDataReader dr2 = da2.ExecuteReader();
// now display it in textBox as a string
if (dr.Read())
{
dr2.Read();
for (int x = 0; x < 4;x++ ) {
if(dr[x].ToString() !=""){
txt.Text += dr[x].ToString() + System.Environment.NewLine;
}
}
}
else { MessageBox.Show("error"); }
con.Close();

将数据连接在一起并限制为只在文本框中写入并在数据网格视图中显示控件:

using(var da = new OleDbDataAdapter("SELECT FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Name = t2.Name WHERE t1.name=@name", con)){
da.SelectCommand.Parameters.AddWithValue("@name",textBox1.Text);
var dt = new DataTable();
da.Fill(dt);
someDataGridView.DataSource = dt;
}

这就是你需要做的全部;数据适配器将打开连接等;只需编写一个sql,添加参数,填充一个数据表,将该表分配为网格的DataSource(您需要向表单中添加一个datagridview并命名它并调整代码名称(

最新更新