用left join联两个表查询,在dataset.Tables[]里面写那个表名?

空白画映 2010-06-23 11:19:00
先上代码

string name = this.lbl_welcome.Text;
//创建连接字符串
string conn = "server=.;user id=sa;pwd=wokofo;database=wkf_oa";
SqlConnection con = new SqlConnection(conn);
//创建SQL语句
string sql = string.Format("select a.comname as [公司名称],b.lianxi as [联系人],b.owner as [拥有人] from wkf_crm_news b left join wkf_crm_comname a on a.cataid=b.cataid where isdelete=0 and owner='{0}'",name);
//初始化dataAdapter
SqlDataAdapter da = new SqlDataAdapter(sql, con);
//初始化dataset
DataSet ds = new DataSet();
//填充dataset
da.Fill(ds, "");//这里不知道些那个表名

this.dgv_Info.DataSource = ds.Tables("");//这里也不知道写那个表名


因为我用left join联两个表查询 在填充dataset的时候 映射源表名称不知道要写那个表名。
...全文
308 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
空白画映 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xray2005 的回复:]
da.Fill(ds, "abc");//表名可以随便取,也可以直接da.Fill(ds)这样就不需要名字了。

this.dgv_Info.DataSource = ds.Tables["abc"];//上面你取的名字就可以了。如果是直接da.Fill(ds),那么直接this.dgv_Info.DataSource = ds;就可以了。默认是绑定DataSet中第0号索引处的表。……
[/Quote]

姐姐,SQL语句在查询分析器里面能查出值。也照您说的改了,datagridview还是绑定不上值
下面是代码

private void Form2_Load(object sender, EventArgs e)
{
this.skinEngine1.SkinFile = "./skin/MSN.ssk";
this.ActiveControl = text_Mail_F;
//绑定datagrivdview
string name = this.lbl_welcome.Text;
//创建连接字符串
string conn = "server=.;user id=sa;pwd=wokofo;database=wkf_oa";
SqlConnection con = new SqlConnection(conn);
//创建SQL语句
string sql ="select a.comname ,b.lianxi,b.owner from wkf_crm_news b left join wkf_crm_comname a on a.cataid=b.cataid where isdelete=0 and owner='zengjuan.li'";
con.Open();
//初始化dataAdapter
SqlDataAdapter da = new SqlDataAdapter(sql, con);
//初始化dataset
DataSet ds = new DataSet();
//填充dataset
da.Fill(ds);
this.dgv_Info.DataSource = ds;
xray2005 2010-06-24
  • 打赏
  • 举报
回复
da.Fill(ds, "abc");//表名可以随便取,也可以直接da.Fill(ds)这样就不需要名字了。

this.dgv_Info.DataSource = ds.Tables["abc"];//上面你取的名字就可以了。如果是直接da.Fill(ds),那么直接this.dgv_Info.DataSource = ds;就可以了。默认是绑定DataSet中第0号索引处的表。
空白画映 2010-06-24
  • 打赏
  • 举报
回复
填充 this.dgv_Info.DataSource = ds.Tables[""];
后没有反应啊
qian_lian 2010-06-24
  • 打赏
  • 举报
回复
是可以不写的那个表名的,上边都说的很详细了,应该可以解决你的问题的。
lijavasy 2010-06-24
  • 打赏
  • 举报
回复
事实上,你查处来的集合是一个新的表,你可以在填充的时候自定义一个表名,或者不定义也行,直接取dataset厘面的第一个表就是你查出来的集合,有下标访问一样的效果.
lijavasy 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 junjie94bei 的回复:]
填充 this.dgv_Info.DataSource = ds.Tables[""];
后没有反应啊
[/Quote]
this.dgv_Info.DataSource = ds.Tables[0]; 这样就OK了
liuyang509 2010-06-24
  • 打赏
  • 举报
回复
路过 学习
sanmi 2010-06-24
  • 打赏
  • 举报
回复
直接省略, 用dateset.Tables[0]定位改表
wgf001 2010-06-24
  • 打赏
  • 举报
回复
方法一:

private void Form2_Load(object sender, EventArgs e)
{
this.skinEngine1.SkinFile = "./skin/MSN.ssk";
this.ActiveControl = text_Mail_F;
//绑定datagrivdview
string name = this.lbl_welcome.Text;
//创建连接字符串
string conn = "server=.;user id=sa;pwd=wokofo;database=wkf_oa";
SqlConnection con = new SqlConnection(conn);
//创建SQL语句
string sql ="select a.comname ,b.lianxi,b.owner from wkf_crm_news b left join wkf_crm_comname a on a.cataid=b.cataid where isdelete=0 and owner='zengjuan.li'";
con.Open();
//初始化dataAdapter
SqlDataAdapter da = new SqlDataAdapter(sql, con);
//初始化dataset
DataSet ds = new DataSet();
//填充dataset
da.Fill(ds);
this.dgv_Info.DataSource = ds.Tables[0];


方法二:

private void Form2_Load(object sender, EventArgs e)
{
this.skinEngine1.SkinFile = "./skin/MSN.ssk";
this.ActiveControl = text_Mail_F;
//绑定datagrivdview
string name = this.lbl_welcome.Text;
//创建连接字符串
string conn = "server=.;user id=sa;pwd=wokofo;database=wkf_oa";
SqlConnection con = new SqlConnection(conn);
//创建SQL语句
string sql ="select a.comname ,b.lianxi,b.owner from wkf_crm_news b left join wkf_crm_comname a on a.cataid=b.cataid where isdelete=0 and owner='zengjuan.li'";
con.Open();
//初始化dataAdapter
SqlDataAdapter da = new SqlDataAdapter(sql, con);
//初始化dataset
DataSet ds = new DataSet();
//填充dataset
da.Fill(ds,"abc");
this.dgv_Info.DataSource = ds.Tables["abc"];
asasday 2010-06-24
  • 打赏
  • 举报
回复

//窗体加载
private void PhotoShow_Load(object sender, EventArgs e)
{
dbs.DataSource = dbLists().Tables["tables"];
}

private static string dbconn = "server=.;database=ImgWindb;uid=sa;pwd=";

public DataSet dbLists()
{
DataSet ds = new DataSet();
SqlDataAdapter sda;
string sql = "select id,imgname from img";//这里是查询数据表的语句 表名是 img
sda = new SqlDataAdapter(sql, new SqlConnection(dbconn));
sda.Fill(ds, "tables");//这里的表名是自定义的!
return ds;
}



楼主你参考一下
teerhu 2010-06-24
  • 打赏
  • 举报
回复
自定義或不寫
不寫時用ds.Tables[0]表示或直接寫ds就可以啦
ddccqq123 2010-06-24
  • 打赏
  • 举报
回复
起啥表名都无关紧要啊~~你自己知道就行了~
zgke 2010-06-24
  • 打赏
  • 举报
回复
DataTable ds = new DataTable();
//填充dataset
da.Fill(ds, "");//这里不知道些那个表名
showlin 2010-06-24
  • 打赏
  • 举报
回复
this.dgv_Info.DataSource = ds.Tables[0];
itliyi 2010-06-24
  • 打赏
  • 举报
回复
winner2050 2010-06-23
  • 打赏
  • 举报
回复
省略不写算了,何必为这个无关痛痒的发愁?
wuyq11 2010-06-23
  • 打赏
  • 举报
回复
da.Fill(ds, "");//表名自定义,与join 无关

111,092

社区成员

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

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

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