首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以SqlDataReader形式返回数据

以SqlDataReader形式返回数据
EN

Stack Overflow用户
提问于 2019-05-29 11:50:19
回答 2查看 61关注 0票数 0

我正在做一个ASP.NET项目。我在SQL Server中有一个存储过程,它返回要在图表中显示的数据列表。这个存储过程工作得很好。我需要返回的数据是传递给Chart.DataBindTableSqlDataReader对象。

我像这样调用存储过程:

代码语言:javascript
复制
string spName = "spFetchDetails";
DbCommand dbCommand = this.ObjDatabase.GetStoredProcCommand(spName);
this.ObjDatabase.AddInParameter(dbCommand, "@Company", DbType.Int32, Company);
this.ObjDatabase.AddInParameter(dbCommand, "@Title", DbType.String, Title);
this.ObjDatabase.AddInParameter(dbCommand, "@DateRange", DbType.String, DateRange);

DataTable dt = new DataTable();
dt = this.ObjDatabase.ExecuteDataSet(dbCommand).Tables[0];

这里的代码是以DataTable的形式返回存储过程结果,我想调用ExecuteReader()方法,但我不确定该怎么做。

代码语言:javascript
复制
Chart.DataBindTable(dt, "Example");

这是用于呈现图表的代码。

下面是我如何在另一个图表中做的,它是工作的。

代码语言:javascript
复制
SqlCommand cmd = new SqlCommand(
  "Select ai.ItemDescription, ai.ItemRate, los.sellingprice, los.mrp from aitem ai inner join losShopItemShipmentDetail los on los.itemid = ai.itemid", con);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();

Chart.DataBindTable(rdr, "ItemDescription");

如何以这种方式调用存储过程?或者,有没有办法将DataTable传递给DataBindTable函数?

代码语言:javascript
复制
public void DataBindTable (System.Collections.IEnumerable dataSource, string xField);
EN

回答 2

Stack Overflow用户

发布于 2019-05-29 13:12:02

您可以尝试这样(示例代码以可视化如何使用它):

代码语言:javascript
复制
Chart c = new Chart();
DataTable dt = new DataTable();
c.DataBindTable(dt.AsEnumerable());
票数 1
EN

Stack Overflow用户

发布于 2019-05-29 12:44:32

您可以调用存储过程,如下所示。

代码语言:javascript
复制
SqlCommand cmd = new SqlCommand("<SqlProcedureName>", con)
cmd.CommandType = CommandType.StoredProcedure;

而不是将datareader分配给图表控件。找到另一种仅设置数据的方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56352858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档