C# 连接数据库多表查询显示

Lichengxuwang_ 2017-12-12 11:41:38
新人小白,请教各位大神

想做一个查询,想的是当用户输入相关字段,例如在单位代号输入001,就可以在dataGridView1中显示出该单位的全部信息
但这些信息在两个表中,要做多表查询,要从ERequest表中选一些字段,从EmployerInfo表中选取一些字段,共同显示到dataGridView1中,这被我搞得特别混乱,希望大家能帮我改一改


谢谢
...全文
1529 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2017-12-13
  • 打赏
  • 举报
回复
凡是涉及多张表的查询, 建议创建视图 这样业务层只需要访问视图, 业务处理逻辑也比较简单
cyg17173 2017-12-13
  • 打赏
  • 举报
回复
是让你贴SQL表结构,结果你贴个图。。。
还要手写SQL。

create table ERequest(ENO char(10),EName nvarchar(100),EAdress nvarchar(100),EAge nvarchar(50),primary key (ENO))

insert into ERequest
select '0001' ENO,'某某公司' EName,'深圳' EAdress,'20以上' EAge
insert into ERequest
select '0002' ENO,'XX公司' EName,'北京' EAdress,'30以上' EAge

create table EmployerInfo(ENO char(10),EName nvarchar(100),EPhone nvarchar(100),EDate nvarchar(50),primary key (ENO))

insert into EmployerInfo
select '0001' ENO,'XX公司' EName,'0755-888866666' ,'20171213'

---------------------有图有真相-------------------------


---------------------源码不含糊----------------------------------
http://download.csdn.net/download/cyg17173/10156232
不能0积分,最少2积分,见谅。
关键代码

/// <summary>
/// 查询方法,自定义参数
/// </summary>
/// <param name="str1"></param>
/// <param name="str2"></param>
/// <returns></returns>
public static DataTable searchFunc(string str1, string str2)
{
DataTable dt = new DataTable();
List<SqlParameter> list1 = new List<SqlParameter>();
StringBuilder sb = new StringBuilder();

sb.Append("select * from ERequest A ");
sb.Append(" left join EmployerInfo B on B.ENO = A.ENO ");
sb.Append(" where 1=1 ");

if (!string.IsNullOrEmpty(str1))
{
sb.Append(" and A.ENO like @ENO" );
list1.Add(new SqlParameter("@ENO", SqlDbType.NVarChar, 100) { Value = "%" + str1 + "%" });
}

if (!string.IsNullOrEmpty(str2))
{
sb.Append(" and A.EName like @EName");
list1.Add(new SqlParameter("@EName", SqlDbType.NVarChar, 100) { Value = "%" + str2 + "%" });
}

SqlParameter[] sqlP = list1.ToArray();
dt = Query(sb.ToString(),sqlP).Tables[0];
return dt;
}

Lichengxuwang_ 2017-12-12
  • 打赏
  • 举报
回复

这个是ERequest那张表

这个是EmployerInfo那张表
小K的大师兄 2017-12-12
  • 打赏
  • 举报
回复
相关表之间用inner join 关联 比如A表有 学号 姓名 两个字段 B表有学号 成绩 两个字段 你就可以这样写sql select a.学号,a.姓名,b.成绩 from A a inner join B b on a.学号=b.学号
欧皇神降术 2017-12-12
  • 打赏
  • 举报
回复
sql才入门啊,去学习一下SQL高级查询吧,俩个表的联合查询不难的
cyg17173 2017-12-12
  • 打赏
  • 举报
回复 1
把你的数据库表结构发出来,我给你改下,做个demo。
cyg17173 2017-12-12
  • 打赏
  • 举报
回复
好简单的问题,好多的分,居然没人回答。 哎,你这是哪里抄的代码,太不合格了。
gh1223181184 2017-12-12
  • 打赏
  • 举报
回复
你俩表应该关联啊 join , 然后再 筛选数据 , 最后读取绑定到控件 , 你俩个sql 返回俩个dataset 这是不对滴

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧