我正在开发一个程序,在asp.net的图表中显示一个表的两列,所以我建立了与我的数据库的连接(这是正确的),问题在于metudo(Chart1。不工作的DataBindTable)并给出以下错误:不支持指定的方法。
如果有人帮助过我,我感激不尽。
代码:
string cs = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("SELECT [Consumo_Medio_Real], [Tipo_de_Fatura] FROM [dbo].[t_faturas] GO", con);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
Chart1.DataBindTable(rdr, " Consumo_Medio_Real");
答案 0 :(得分:3)
从SQL语句中删除GO
。您的SQL语句应该是
SELECT [Consumo_Medio_Real], [Tipo_de_Fatura] FROM [dbo].[t_faturas]
您收到错误,因为指定的列名称中包含空格,如下所示
Chart1.DataBindTable(rdr, " Consumo_Medio_Real");
^... Here
它应该像下面一样,因为列名代表X-Axis
Chart1.DataBindTable(rdr, "Consumo_Medio_Real");
请参阅下面的MSDN链接以获取示例
答案 1 :(得分:0)
尝试没有“GO”
string cs = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("SELECT [Consumo_Medio_Real], [Tipo_de_Fatura] FROM [dbo].[t_faturas]", con);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
//Add datatable...
System.Data.DataTable dt = new DataTable();
dt.Load(rdr);
var enumerableTable = (dt as System.ComponentModel.IListSource).GetList();
chart1.DataBindTable(enumerableTable , "X");
尝试将数据转储到一些实现ienumerable的对象中......并将其作为参数传递给.DataBindTable()
查看定义here(SqlDataReader不实现IEnumerable)
希望这有帮助!