OleDbDataReader中放两个以上记录集的问题!

dotnet东哥 2005-11-05 01:00:50
如下代码:
string sqlstr = "select top 10 [id],topic,makedate,ishot from news where newstype=@newstype order by makedate desc; select * from newstype where [ID]=@newstype";
OleDbConnection conn = new OleDbConnection(connstr);
OleDbCommand cmd = new OleDbCommand(sqlstr,conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@newstype",OleDbType.Integer);
cmd.Parameters["@newstype"].Value = Convert.ToUInt32(newstype);
try
{
cmd.Connection.Open();
OleDbDataReader dr = cmd.ExecuteReader();
sitenewsdg.DataSource = dr;
sitenewsdg.DataBind();
dr.NextResult();
dr.Read();
Label1.Text = Convert.ToString(dr[1]);
dr.Close();
}
catch(Exception ex)
{
Response.Write(ex.ToString());
}
finally
{
cmd.Dispose();
conn.Close();
}
结果老是报错!其实也就是想实现前一个记录集放到DataGrid里面
后一个记录集的结果显示在Lable里面
求教!!!!
...全文
194 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jqryga1221 2005-11-05
  • 打赏
  • 举报
回复
access不支持这样的查询
机器人 2005-11-05
  • 打赏
  • 举报
回复
access也不支持啦。你可以在access query里测试一下你这种批量查询。
dotnet东哥 2005-11-05
  • 打赏
  • 举报
回复
我也查了msdn,方法也没错啊,奇怪了
brightview 2005-11-05
  • 打赏
  • 举报
回复
DataReader只能向前读取.读取后就不能再访问了.
可以获取DataSet中的DataTable,就可以反复使用了.不过资源耗用和速度上要略差一点
dotnet东哥 2005-11-05
  • 打赏
  • 举报
回复
to :回复人: fangxinggood(JustACoder) ( ) 信誉:106
----------------------
数据库是ACCESS的
我知道DataAdapter.Fill(DataSet)这种方式
但是程序哪里有问题呢?谢谢指教
机器人 2005-11-05
  • 打赏
  • 举报
回复
第一,如果数据库是Oracle,那么这种查询不支持。

第二,如果不是Oracle,可以使用DataAdapter.Fill(DataSet)这种方式。获得两个查询的结果集。
dotnet东哥 2005-11-05
  • 打赏
  • 举报
回复
OleDbDataReader dr = cmd.ExecuteReader();这一句
zhy0101 2005-11-05
  • 打赏
  • 举报
回复
哪一句出现的异常
dotnet东哥 2005-11-05
  • 打赏
  • 举报
回复
to:回复人: jxufewbt(我的目标是5星) ( ) 信誉:100
----------------------------------------------------
报错:
System.Data.OleDb.OleDbException: 在 SQL 语句结尾之后找到字符。 at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteReader() at website.inc.sitenews.GetNewsMsg() in f:\test\website\inc\sitenews.ascx.cs:line 72System.Data.OleDb.OleDbException: 在 SQL 语句结尾之后找到字符。 at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteReader() at website.inc.sitenews.GetNewsMsg() in f:\test\website\inc\sitenews.ascx.cs:line 72
feiyun0112 2005-11-05
  • 打赏
  • 举报
回复
分两次打开不就行啦
jxufewbt 2005-11-05
  • 打赏
  • 举报
回复
把dr.Read();去掉看看

62,241

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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