对两个数据库中的两个表进行联合查询
2012-03-30 00:07
267 查看
最近被问道了一个问题,就是如何对两个数据库里面的表进行联合查询。
后来我就用了最笨的方法实现了。希望看到的朋友能给个好的解决方法,只用一个连接字符串。最好是给个详细的教程。
首先有这样的两个数据库,每个数据库中有两个表。
表里面的数据也很简单,就是学生表和专业表,用专业号关联。
下面就在Winfrom的DataGridView上绑定数据,显示学生的编号、姓名、年龄和专业。效果如下:
由于对数据的操作我用到了linqtodataset所以项目的.net版本为3.5以上。
下面就是绑定数据的代码:
[code]usingSystem.Collections.Generic;
[/code]
希望有更好实现这个功能的前辈,告诉我一下。
作者QQ:29992379
后来我就用了最笨的方法实现了。希望看到的朋友能给个好的解决方法,只用一个连接字符串。最好是给个详细的教程。
首先有这样的两个数据库,每个数据库中有两个表。
表里面的数据也很简单,就是学生表和专业表,用专业号关联。
下面就在Winfrom的DataGridView上绑定数据,显示学生的编号、姓名、年龄和专业。效果如下:
由于对数据的操作我用到了linqtodataset所以项目的.net版本为3.5以上。
下面就是绑定数据的代码:
usingSystem;
[code]usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.Linq;
namespaceLinkTwoData
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
stringstrcon1=@"DataSource=FENG-PC\SQLEXPRESS;InitialCatalog=test1;UserID=sa;PassWord=sa2008";
stringstrcon2=@"DataSource=FENG-PC\SQLEXPRESS;InitialCatalog=test2;UserID=sa;PassWord=sa2008";
privatevoidForm1_Load(objectsender,EventArgse)
{
SqlDataAdaptersda1=newSqlDataAdapter("select*fromstu1",strcon1);
SqlDataAdaptersda2=newSqlDataAdapter("select*fromstu1",strcon2);
DataSetds=newDataSet();
sda1.Fill(ds,"stu1");
sda2.Fill(ds,"stu2");
varquery=fromstuinds.Tables["stu1"].AsEnumerable()
fromscinds.Tables["stu2"].AsEnumerable()
wherestu.Field<int>("sc")==sc.Field<int>("sc")
selectnew
{
sno=stu.Field<int>("sno",DataRowVersion.Original),
sname=stu.Field<string>("sname",DataRowVersion.Original),
sage=stu.Field<int>("sage",DataRowVersion.Original),
scname=sc.Field<string>("scname",DataRowVersion.Original)
};
DataTabledt=newDataTable();
dt.Columns.Add("sno",typeof(int));
dt.Columns.Add("sname",typeof(string));
dt.Columns.Add("sage",typeof(string));
dt.Columns.Add("scname",typeof(string));
foreach(variteminquery)
{
DataRownewRow=dt.NewRow();
newRow["sno"]=item.sno;
newRow["sname"]=item.sname;
newRow["sage"]=item.sage;
newRow["scname"]=item.scname;
dt.Rows.Add(newRow);
}
dataGridView1.DataSource=dt.DefaultView;
}
}
}
[/code]
希望有更好实现这个功能的前辈,告诉我一下。
作者QQ:29992379
相关文章推荐
- 两个数据库中两个表进行联合查询的步骤
- Linq从两个edmx(两个数据库)中选取数据进行查找出现错误解决 (指定的 LINQ 表达式包含对与不同上下文关联的查询)
- C#两个datetable运用linq进行联合查询并写入新表
- 在db2中 两个数据库之间的两个表的联合查询
- oracle将两个结果连接后进行查询,得到两个查询的联合结果
- 联合两个索引查询,已解决: 还有个进行多条件搜索 and 与 or 的操作
- 这两个SQL语句都是查询数据库里头是否存在某个表的语句
- 爆料:为什么Entity Framework不能进行跨数据库查询
- linq多表联合查询应用讲解(项目实例进行讲解)
- 跨服务器、数据库、表联合查询
- SQL 数据库 学习 028 查询-11 having --- 对分组之后的信息进行过滤
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作代码
- 数据库的联合查询
- 在 thinkphp3.2的 两个表里面有相同字段 进行链表查询
- 数据库适当添加索引进行查询优化
- 数据库中查询,两个经纬度之间的距离代码
- 数据库表查询-对查询的列进行操作
- 数据库创建两个表格及模糊查询,函数
- 【转载】C#中传统方式进行数据库表信息查询
- Hibernate 使用HQL方法进行模糊查询(3张表联合查询)