VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1486|回复: 13

可否用DataTable做SQL差数?

[复制链接]

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-1-26 12:40:01 | 显示全部楼层 |阅读模式
public DataSet aaa(DataTable dt)
{
    string sql ="select a.*,b.* from tba left join "+dt+" b on a.id=b.id";
}
这样写法不行哦
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-16 21:00:02 | 显示全部楼层
我可以很负责任地告诉你:不行
回复

使用道具 举报

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-2-17 11:00:01 | 显示全部楼层
我也知道不行,我是想达到这种效果,应该怎么弄呢?
回复

使用道具 举报

0

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-3-5 02:00:01 | 显示全部楼层
如果你把DataTable的名字取得与数据库里一致的话可以用DataTable.Name,不过DataTable和数据库里的table不是一回事,最好不要这样用。
回复

使用道具 举报

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-3-7 17:45:01 | 显示全部楼层
我要的是把DataTable跟数据库里的Table相连。
上面写的有误
string sql ="select a.*,b.* from sqltb a left join "+dt+" b on a.id=b.id";

sqltb是数据库里的表,dt是DataTable差数
回复

使用道具 举报

0

主题

13

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-3-8 19:45:01 | 显示全部楼层
可以先把数据库里的表填充到datatable
再把这两个datatable进行联合
回复

使用道具 举报

0

主题

26

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-3-9 10:00:01 | 显示全部楼层
直接在数据库中建立同名的临时表,将界面数据导到临时表中再联合查询,不过这样做真的好傻,性能超级差.DataSet的Merge效果也不是很好,虽然结构合并了,但是数据也翻上去了,也不好处理.
还是老老实实在界面用过滤一步步处理吧
回复

使用道具 举报

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-3-9 16:00:01 | 显示全部楼层
sqltb是ms sql里的一个表,DataTable是从my sql里查出来的数量,要把二个联合起来,烦啊。
回复

使用道具 举报

0

主题

26

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-3-10 00:15:01 | 显示全部楼层
既然DataTable是从my sql里查出来的数量,如果在界面没有对DataTable进行修改的操作,那么可以用子查询的方式重新构建sql语句查询,将查询数量的sql语句结果作为新语句的子表.

string sql ="select a.*,b.* from sqltb a left join (这里是查询数量的sql语句) b on a.id=b.id";
回复

使用道具 举报

0

主题

31

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-3-10 22:45:02 | 显示全部楼层
如下
如果你给DT设置了NAME

string sql ="select a.*,b.* from sqltb a left join "+dt.tablename+" b on a.id=b.id";
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表