Ich versuche, Werte aus einem DataSet in C#/ASP.NET aus einer gespeicherten Prozedur zurückgegeben. Normalerweise wird die DefaultView von diesem DataSet in einer GridView in einer ASP.NET-Seite übergeben. In diesem Fall hat eine bestimmte Spalte, die mich interessiert, einen Wert. Wenn ich jedoch versuche, eine DataRow zu lesen und den Spaltenwert abzurufen, wird sie als leer angezeigt.DataRow-Spalte hat Wert beim Lesen, aber nicht beim Lesen
Zum Beispiel wird dieser Wert angezeigt werden:
DataSet ds = //////
DataView dv = ds.Tables[0].DefaultView;
grdQuotes.DataSource = dv;
grdQuotes.DataBind();
Das aber gibt mir keinen Wert:
DataSet ds = //////
foreach (DataRow row in ds.Tables[0].Rows) {
String value1 = (String)row["DOReviewDate"];
String value2 = ((Object)row["DOReviewDate"]).ToString();
String value3 = row.Field<String >("DOReviewDate");
}
Alle drei Variablen leer enden.
Ich bin ziemlich verloren, wohin damit zu gehen, da es offensichtlich ist, dass ein Wert aus der SQL-Datenbank gezogen wird, sonst würde es nicht in der GridView-Tabelle auf der Seite angezeigt. Außerdem kann ich den Rest der Spaltenwerte in der Zeile ohne Problem erhalten. Interessanterweise gibt es eine andere Spalte, die das gleiche Verhalten zeigt.
- EDIT -
Versuch durch Zeilen und Spalten iterieren Daten zu erhalten:
StringBuilder sb = new StringBuilder();
foreach (DataRow row in ds.Tables[0].Rows)
{
StringBuilder r = new StringBuilder();
foreach (DataColumn c in ds.Tables[0].Columns)
{
r.Append(String.Format("{0} | ", row[c]));
}
r.Append("END");
sb.AppendLine(r.ToString());
}
Was ist der Datentyp der Spalte DOReviewDate? – Steve
Zur Fehlerbehebung empfehle ich Ihnen, ein wenig Code zu schreiben, um alle 'Tables',' Zeilen' und Felder zu durchlaufen, damit Sie sehen können, was vor sich geht (oder Sie können einen Breakpoint setzen und über Watch inspizieren). Möglicherweise enthält die Tabelle [0] eine Nachricht von T-SQL (z. B. wenn Sie vergessen haben, "NOCOUNT ON ON" einzustellen) –
Der Datentyp ist ** String **. Außerdem habe ich die vollständige Liste der Spalten durchlaufen, und wenn es Datenreferenzierung mit einer DataColumn anstelle stattdessen hervorbringt, ergibt nichts. Was die Rückgabe von der Datenbank angeht, habe ich keine wirkliche Kontrolle darüber, da ich sie nicht erstellt habe und auch nicht. Ich füge meinem Beitrag eine Bearbeitung hinzu, um zu zeigen, was ich versucht habe. –