不支持指定的方法

时间:2017-04-11 15:44:31

标签: c# asp.net sql-server

我正在开发一个程序,在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");

2 个答案:

答案 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链接以获取示例

https://msdn.microsoft.com/en-us/library/dd456766.aspx

答案 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)

希望这有帮助!