• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

在SqlDataAdapter的select语句中可以用多条语句,在OleDbDataAdapter 中不行,是这样吗?我这里有例子,麻烦来看一下!

weddingin2008 2005-03-18 07:52:57
string now=System.DateTime.Now.ToString("yyyy-MM-dd");
string sqlstring="select kindid,count(*) as totaltopic from questions group by kindid;";//获得各版块共有多少贴子
sqlstring=sqlstring+"select kindid,count(*) as todaytopic from questions where Convert(varchar(10),ReleaseTime,120)='"+now+"' group by kindid;";
sqlstring=sqlstring+"select kindid,count(*) as todaypost from Answers where Convert(varchar(10),Ans_Time,120 )='"+now+"' group by kindid";


OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source="+System.Web.HttpContext.Current.Server.MapPath("./Data.mdb"));
OleDbDataAdapter da=new OleDbDataAdapter(sqlstring,conn);
DataSet ds=new DataSet();
try
{
conn.Open();
da.Fill(ds);
}
catch(OleDbException ex)
{
Lizheng.Common.JScript.Alert(ex.Message);
}
finally
{
conn.Close();
}
报错:在SQL语句结束之后找到非法字符。
...全文
244 点赞 收藏 11
写回复
11 条回复
webdiyer 2005年03月22日
减少访问数据库速度?你是要减少访问数据库的次数吧?这可以通过缓存等来实现,一次取出后保存在缓存中,只有该值改变后再更新并重新获取数据,其实有好多值并不是经常更新的,所以没必要每次都从数据库去获取。
回复 点赞
weddingin2008 2005年03月20日
up
回复 点赞
weddingin2008 2005年03月19日
一般论坛首页都有每个版的的总主题数,回复数,及今天的主题数和回复数,还有各版块最后发表的主题及相关信息.有的还有当前在线人数,在线会员,在线访客,最高在线等等.这都是要读取数据库的,我想知道大家是如何尽量减少访问数据库速度的. (如果是Access作为数据库的话)
回复 点赞
Overriding 2005年03月18日
按你的思路是要取出所有的帖子的数目和当天帖子的数据.
那你这么做肯定不对.
正确的应该是这种形式的.

SELECT table1.id, table1.name
FROM table1 where id=1 union
SELECT table1.id, table1.name
FROM table1 where id=0
你必须保证每个selectet选出的数据列能对应.

回复 点赞
Overriding 2005年03月18日
呵呵,不好意思,没看到你后面还要连接另外的sql语句.
回复 点赞
weddingin2008 2005年03月18日
楼上的肯定不行啊,分号是区分几条语句的标识符。
回复 点赞
Overriding 2005年03月18日
string sqlstring="select kindid,count(*) as totaltopic from questions group by kindid;";//===>
string sqlstring="select kindid,count(*) as totaltopic from questions group by kindid";//
sql语句末尾的分号去掉。
回复 点赞
chengbo1983 2005年03月18日
OleDb好像是不支持同时运行多条SQL
回复 点赞
bidisty 2005年03月18日
Access不支持多语句
回复 点赞
zyug 2005年03月18日
yeah
我也被困惑了好几天
因为我自己用过sqlDataAdapter 一次 fill过几个DataTable

呵呵,总算明白了
回复 点赞
webdiyer 2005年03月18日
和OleDb没有关系,你用的数据库应该是Access吧,Access是不允许一次执行一条以上SQL语句的,而SQL Server可以,所以如果用OleDb来连接SQL Server,上面的结果就不会出错,用Access只能一条一条执行。
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告