| 

.NET C# Java Javascript Exception

0
Hallo.

Ich arbeite mich gerade etwas in LinQ ein und bin auf folgendes Tutorial gestoßen, da ich auch aus einer im SQL Server 2008 gespeicherten Prozedur Werte auslesen möchte.

http://blogs.msdn.com/b/zainnab/archive/2007/10/25/linq-and-stored-procedures.aspx

Ich bekomme aber für jede Zelle 0 Werte.

Die Tabelle hat 3 Spalten und 3 Datensätze.

Also bekomme ich eine 3x3 Matrix mit jeweils 0 Werten.

An Berechtigungen in der Datenbank liegt es nicht.

Das ist mein Code:
DataClasses1DataContext myDb = new DataClasses1DataContext(sqlConString);

var r = myDb.prozedur01();

var result2 = from sp in myDb.prozedur01()
select sp;
foreach (var prozedur01Ergebnise in result2)
{
Console.WriteLine(prozedur01Ergebnise.Column1 + " "
+ prozedur01Ergebnise.Column2 + " " +
prozedur01Ergebnise.Column3);
}


Das tut so nicht.

Wenn ich allerdings mit dem gleichen Connection String das so mache
SqlConnection con = new SqlConnection(sqlConString);
con.Open();
SqlCommand Command = new SqlCommand();
Command.CommandType = CommandType.StoredProcedure;
Command.CommandText = "dbo.prozedur01";
Command.Connection = con;

SqlDataReader result = Command.ExecuteReader();
while(result.Read())
Console.WriteLine(result["Eins"] + " " + result["Zwei"] + " " + result["Drei"]);
con.Close();


Funktioniert das.

Was mache ich hier Falsch?
17.03.2011
Bibo1987 180 7
1 Antwort
1
Hallo Bibo,

ich habe Dein Beispiel mal ausprobiert und muss sagen, dass es bei mir problemlos funktioniert. Daher kann ich Dir eigentlich keine Hilfestellung geben.

Weshalb ich aber eine Antwort schreibe, ist der Vergleich des Linq-Quelltexts mit dem Quelltext, der die DataSet-Klassen verwendet. Bist Du sicher, dass Du in beiden Beispielen dieselbe Datenbank und dieselbe Stored Procedure verwendest? Im Link-Beispiel heißen die Spalten nämlich anders, als im DataSet-Beispiel (Column1 statt Eins usw.).

Und noch eine Bemerkung am Rande: Was soll die Zeile

var r = myDb.prozedur01();


bewirken? r wird gar nicht verwendet. (Bei mir funktioniert es mit oder ohne diese Zeile, weshalb es für dieses Problem sicher irrelevant ist. Aber vielleicht hast Du noch andere Teile in Deinem hier nicht veröffentlichten Quelltext, die eine korrekte Funktion verhindern?)

Und noch ein Gedanke: Wo kommt der Connectionstring her? Ist der aus der Konfiguration gelesen oder manuell im Quelltext gesetzt?

Mehr Ideen habe ich jetzt leider auch nicht.

Gruß

Andreas
17.03.2011
Andreas Ganzer 1,4k 8

Stelle deine .net-Frage jetzt!