2017-04-12 1 views
0

Ich habe ein Problem mit der Anzeige von Daten aus einer Spalte, die in SQL Server, als x und y in meinem Diagramm in asp.net einfügen ist das Problem, so scheint es die Methode (DataBindTable) wartet auf IEnumerable, aber mein SqlDataReader implementiert IEnumerable nicht. Wenn Sie mir Beispiele dafür geben könnten, wie Sie diese Schwierigkeit überwinden können, danke. HierDataBindTable Inkompatibel mit SqlDataReader implementieren IEnumerable nicht

ist das Einfügen Code:

protected void Chart1_Load13(object sender, EventArgs e) 
{ 
     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(); 
     Chart1.DataBindTable(rdr,"Consumo_Medio_Real"); 
    } 
} 

Dies ist der Verbindungscode:

<connectionStrings> 
    <add name="CS" connectionString="Data Source=ASUS;Initial 
    Catalog=DB_SACC;Persist Security Info=True;User ID=sa;Password=1234" 
    providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
+0

Verwenden Sie eine datatable Load-Methode, um sie mit dem Datenreader zu füllen, dann binden Sie die Datentabelle – Steve

+0

Verwenden Sie einen sqldataAdapter, der automatisch eine Datentabelle füllt, an die Sie binden können: https://msdn.microsoft.com/en-us/library/ system.data.sqlclient.sqldataadapter (v = vs.110) .aspx – jdweng

+0

Wie kann ich das @ Steve tun? –

Antwort

0

Sie könnten load Ihre Datareader in eine Datentabelle:

DataTable dt = new DataTable(); 
SqlDataReader rdr = cmd.ExecuteReader(); 
dt.Load(rdr); 
dataReader.Close(); 
Chart1.DataBindTable(dt,"Consumo_Medio_Real"); 
+0

Ich habe Probleme im Einsatz Datatable gibt es diesen Fehler: Fehler "DataTable" ist ein mehrdeutiger Verweis zwischen "Microsoft.Office.Interop.Excel.DataTable" und "System.Data.DataTable" –

+0

, wenn Verwendung Typ "DataTable" Verwenden Sie "System.Data.DataTable" – M84

+0

danke @ M56 aber nicht funktioniert –

0

Versuchen Sie, mit dieser :

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"); 

here Sie eine Antwort haben ...

Hope this Hilfe.

+0

Ich habe Probleme in Verwendung Datatable es gibt diesen Fehler: Fehler 'DataTable' ist ein mehrdeutiger Verweis zwischen 'Microsoft.Office.Interop.Excel.DataTable' und 'System.Data.DataTable' –

+0

bei Verwendung Typ "DataTable" Verwenden Sie "System.Data.DataTable" – M84

+0

danke @ M56 aber nicht funktioniert –

Verwandte Themen