如何解决从 C# 表单中搜索两个访问表
这是我的代码,换句话说,如何使用相同的 textBox1.text 值在 Table1 和 Table2 中进行搜索:
// [表1]
| name | age |
| -------- | -------------- |
| aaa | 12 |
| bbb | 13 |
| ccc | 14 |
// [Table2]
| name | gender |
| -------- | -------------- |
| aaa | male |
| bbb | female |
| ccc | male |
当 [name] 等于 textBox1.text 时,如何获取年龄和性别值并将其显示在 txt.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();
解决方法
将数据连接在一起并限制为仅写入文本框中的内容并显示在 datagridview 控件中:
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,加参数,填数据表,把表指定为grid的DataSource(你需要在你的表单中添加一个datagridview并命名并调整代码名称)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。