在C#中使用linq实现多表查询,首先需要在c#中连接你的数据库 

首先我们先创建一个数据库和两个数据表   

 然后在表中插入数据设置完毕后到c#中

把数据库创建完毕后在main函数中连接字符串也就是连接自己的sqlsever

string str = "server=DESKTOP-IOK5BR8;uid=sa;pwd=123456;database=db_SouthWind";

然后实例化一个数据集对象 !要引用命名空间using System.Data;

DataSet ds = new DataSet();

之后实例化一个适配器对象!要引用命名空间 using System.Data.SqlClient;然后把直接使用的数据表写上去

string sql = "select*from Product;select*from Category";
SqlDataAdapter sda = new SqlDataAdapter(sql,str);

填充数据集

sda.Fill(ds);

之后利用linq查询数据集用join进行多表连接

var rs = from x in ds.Tables[0].AsEnumerable()
                     join y in ds.Tables[1].AsEnumerable()
                     on x["CID"] equals y["CateID"]
                     select new
                     {
                         pid=x["PID"],
                         pname=x["PName"],
                         cname=y["CateName"]
                     };

最后在用foreach循环遍历出来需要的数据就可以了

 foreach (var item in rs)
            {
                Console.WriteLine(item.pid+" "+item.pname+" "+item.cname);
            }

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐