DataSet enthält immer mehrere Tables!

26/08/2007 - 22:01 von Wojtek Kusch | Report spam
Hallo!

In meiner Web.config habe ich folgende ConnectionStrings eingetragen:
<connectionStrings>
..
<add name="MyConnectionString" connectionString="Data
Source=.\SQLEXPRESS;Integrated
Security=true;AttachDbFilename=|DataDirectory|MYST.mdf;User
Instance=True" providerName="System.Data.SqlClient"/>

..
</connectionStrings>





Ich habe in der ASP-Datei einGrid und binden die Splaten des Grids an
die Spalten des Results (DataSet) von einer Datenbank:

<Columns>
<GridColumn DataField="playdate" >
</Columns>





Ich versuche ein DataSet zu füllen und dieses dann einem Grid zuzuweisen:

SqlConnection connection = new
SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
string sql = "SELECT PlayTable.playdate FROM PlayTable WHERE
(PlayTable.playDay = @playDay)";

...

System.Data.SqlClient.SqlDataAdapter adapter = new
System.Data.SqlClient.SqlDataAdapter(command);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);

Grid1.DataSource = dataSet;
Grid1.DataBind();

Bei Grid1.DataBind() bekomme ich eine Exception.
EXCEPTION: Column 'playdate' not found in data source



Die SQL-Anweisung wird korrekt ausgeführt.
Wenn ich mir aber das dataSet anschaue, dann bekomme ich als Result
mehrere (!!!) Tables, unter anderem die Users, MemberInfo (also die
Tabellen für die User-Verwaltung) usw... Erst an der 5-ten Stelle steht
meine gewünschte Tabelle.
Frage: warum bekomme ich diese User-Tabellen und wie kann ich nur die
eine, gewünschte Tabelle als DataSet an das Grid binden?

Danke für die Hilfe!
Dankbar,
Wojtek Kusch
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
27/08/2007 - 08:28 | Warnen spam
Hallo Wojtek,

"Wojtek Kusch" schrieb:

Ich habe in der ASP-Datei einGrid und binden die Splaten des Grids an
die Spalten des Results (DataSet) von einer Datenbank:

<Columns>
<GridColumn DataField="playdate" >
</Columns>



welches Grid Control verwendest du da?

System.Data.SqlClient.SqlDataAdapter adapter = new
System.Data.SqlClient.SqlDataAdapter(command);



Kannst du den Code für die Erstellung von "command" bitte auch noch posten?
Wenn machbar, inkl. der Zeilen, in denen die Eigenschaften von "command"
gesetzt werden.

Wenn ich mir aber das dataSet anschaue, dann bekomme ich als Result
mehrere (!!!) Tables, unter anderem die Users, MemberInfo (also die
Tabellen für die User-Verwaltung) usw... Erst an der 5-ten Stelle steht
meine gewünschte Tabelle.



Was ist "Users", "MemberInfo", ...? Eigene Tabellen? Tritt das Problem auch
in einer Seite auf, die _nur_ den Code für die Anzeige der o.a. Daten und
die Grid Deklaration enthàlt?

Frage: warum bekomme ich diese User-Tabellen und wie kann ich nur die
eine, gewünschte Tabelle als DataSet an das Grid binden?



<DataSet>.Tables( <Index> )
<DataSet>.Tables( "<Name>" )
...

Allerdings würde es mich wundern, wenn die anderen Tabellen automatisch
ins DataSet eingefügt werden. Ich muss aber gestehen, dass ich meist
kein DataSet, sondern direkt eine DataTable nehme und das Problem somit
eh nicht hàtte.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen