我正在做一个ASP.NET项目。我在SQL Server中有一个存储过程,它返回要在图表中显示的数据列表。这个存储过程工作得很好。我需要返回的数据是传递给Chart.DataBindTable的SqlDataReader对象。
我像这样调用存储过程:
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()方法,但我不确定该怎么做。
Chart.DataBindTable(dt, "Example");这是用于呈现图表的代码。
下面是我如何在另一个图表中做的,它是工作的。
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函数?
public void DataBindTable (System.Collections.IEnumerable dataSource, string xField);发布于 2019-05-29 13:12:02
您可以尝试这样(示例代码以可视化如何使用它):
Chart c = new Chart();
DataTable dt = new DataTable();
c.DataBindTable(dt.AsEnumerable());发布于 2019-05-29 12:44:32
您可以调用存储过程,如下所示。
SqlCommand cmd = new SqlCommand("<SqlProcedureName>", con)
cmd.CommandType = CommandType.StoredProcedure;而不是将datareader分配给图表控件。找到另一种仅设置数据的方法
https://stackoverflow.com/questions/56352858
复制相似问题