如果union不能完成,请用dataset.merge
2004-11-18 11:11
309 查看
要求:
一个文章表:有PostID(文章编号),ParentID(关联了的文章PostID),SourceID(被关联的一篇文章)
原本写了个语句,发觉不能运行。
SELECT PKID, Title, Author, OperateDate, Text, PostID, ParentID, PostID AS SortID
FROM TBL_Post
WHERE (ParentID = 2) AND (PostType = 3 OR
PostType = 7) AND (DeleteFlag = 0)
UNION
SELECT posta.PKID, posta.Title, posta.Author, posta.OperateDate, posta.Text, posta.PostID,
posta.ParentID, postb.PostID AS SortID
FROM TBL_Post posta INNER JOIN
TBL_Post postb ON posta.PostID = postb.SourceID
WHERE posta.ParentID = 2 AND posta.DeleteFlag = 0 AND postb.ParentID = 2 AND
postb.DeleteFlag = 0
ORDER BY SortID
想到dataset. merge,如下成功了
DataSet ds = new DataSet();
string strSQL = String.Format(@"select TBL_Config.BlogID ID , TBL_Config.Author Name
from TBL_Post,TBL_Config
where TBL_Post.Operater = TBL_Config.BlogID
and PostID = {0} And TBL_Config.BlogID > 2",postID);
DataTable dt = JumpDbProvider.Select(strSQL);
dt.PrimaryKey = new DataColumn[1]{dt.Columns["ID"]};
ds.Tables.Add(dt.Copy());
strSQL = String.Format(@" select GroupID ID,GroupName Name
from TBL_Group, TBL_PostRight
where TBL_PostRight.TempID = TBL_Group.GroupID
And IsGroup = 1
and PostID = {0} AND Active = 1",postID);
DataTable dtm = JumpDbProvider.Select(strSQL);
ds.Merge(dtm,false,MissingSchemaAction.Add);
return ds.Tables[0];
一个文章表:有PostID(文章编号),ParentID(关联了的文章PostID),SourceID(被关联的一篇文章)
原本写了个语句,发觉不能运行。
SELECT PKID, Title, Author, OperateDate, Text, PostID, ParentID, PostID AS SortID
FROM TBL_Post
WHERE (ParentID = 2) AND (PostType = 3 OR
PostType = 7) AND (DeleteFlag = 0)
UNION
SELECT posta.PKID, posta.Title, posta.Author, posta.OperateDate, posta.Text, posta.PostID,
posta.ParentID, postb.PostID AS SortID
FROM TBL_Post posta INNER JOIN
TBL_Post postb ON posta.PostID = postb.SourceID
WHERE posta.ParentID = 2 AND posta.DeleteFlag = 0 AND postb.ParentID = 2 AND
postb.DeleteFlag = 0
ORDER BY SortID
想到dataset. merge,如下成功了
DataSet ds = new DataSet();
string strSQL = String.Format(@"select TBL_Config.BlogID ID , TBL_Config.Author Name
from TBL_Post,TBL_Config
where TBL_Post.Operater = TBL_Config.BlogID
and PostID = {0} And TBL_Config.BlogID > 2",postID);
DataTable dt = JumpDbProvider.Select(strSQL);
dt.PrimaryKey = new DataColumn[1]{dt.Columns["ID"]};
ds.Tables.Add(dt.Copy());
strSQL = String.Format(@" select GroupID ID,GroupName Name
from TBL_Group, TBL_PostRight
where TBL_PostRight.TempID = TBL_Group.GroupID
And IsGroup = 1
and PostID = {0} AND Active = 1",postID);
DataTable dtm = JumpDbProvider.Select(strSQL);
ds.Merge(dtm,false,MissingSchemaAction.Add);
return ds.Tables[0];
相关文章推荐
- 如果union不能完成,请用dataset.merge
- 非阻塞TCP套接字的要点 发表于 2015-04-22 | 分类于 网络编程 | 套接字的默认状态是阻塞的。如果一个套接字不能立即完成相应的调用,那么该线程就会被投入睡眠,等待相应的操
- 关于ISP下载中 编译后自动下载代码不能执行完成的一点问题
- 元素宽度width用百分比表示时,如果不能全占满父元素的宽度会出现一条白杠(移动端某些浏览器)
- 如果你不能从回忆中走出,我只能离开你
- CENTOS安装完成不能上网
- vs2013不能完成操作,不支持接口
- 五个常见开机不能完成自检的原因
- Android Studio 安装完成不能打开等问题解决记录
- Android Studio 安装完成不能打开的方法
- 完成系统登录程序,从命令行输入用户名和密码,如果没有输入用户名和密码,则提示输入用户名和密码;如果输入了用户名但是没有输入密码,则提示用户输入密码,然后判断用户名是否是mldn,密码是否是hello,
- 完成系统登录程序,从命令行输入用户名和密码,如果没有输入用户名和密码,则提示输入用户名和密码;如果输入了用户名但是没有输入密码,则提示用户输入密码,然后判断用户名是否是mldn,密码是否是hello,
- 请写一个简单的幻灯效果页面。如果不使用JS来完成,可以加分。
- 如果不能
- 不能使用控制器“XXXController”的单个实例处理多个请求。如果正在使用自定义控制器工厂,请确保它为每个请求创建该控制器的新实例。
- 学以致用------韩顺平老师说(如果不能学以致用,那就是白费。等于没学。贪多嚼不烂。)---无内容
- ClientDataSet字段不能进行编辑时的解决方法
- 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的
- 如果想让浏览器给我们完成一些事 请不要关闭 Cookie
- 如果不能显示真正的考验个别车型toast问题解决