Ich habe die folgende gespeicherte Prozedur in meiner SQL Server-Datenbank, die in Ordnung ausführt:SqlDataReader Rückkehr keine Daten von SQL Server gespeicherte Prozedur
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[LoadStates]
AS
BEGIN
SELECT stateabbrev
FROM states
ORDER BY stateabbrev
END
GO
Hier ist mein C# -Code; sdrData
wurde initialisiert und scheint korrekt zu sein, aber die Ergebnismenge ist leer. Bitte helfen Sie.
using (SqlCommand sqlCmd = new SqlCommand("LoadStates", sqlConn))
{
sqlCmd.CommandType = CommandType.StoredProcedure;
// set up the parameters that the Stored Procedure expects
//sqlCmd.Parameters.Add("@States", SqlDbType.Char, 2).Direction = ParameterDirection.Output;
using (SqlDataReader sdrData = sqlCmd.ExecuteReader())
{
while (sdrData.Read())
{
string strDBNme = sdrData.ToString();
//string strDBNme = (string)sdrData["States"];
cmbxACState.Items.Add(strDBNme);
}
sdrData.Close();
}
}
#Ramdeo angh - Ich habe das versucht und immer noch die gleichen Ergebnisse. Meine Verbindungszeichenfolge ist bereits geöffnet, ich mache es in einem Schritt vorher. Gibt es eine Möglichkeit, den Anruf zum SQL-Server zu verfolgen und zu sehen, was mit dem Anruf passiert? – Cass
schau dir die neue Antwort an, die ich gepostet habe. es funktioniert und getestet. Sie müssen Ihren Code ändern. Öffnen Sie Ihre Verbindung vor der SQL-Befehlsanweisung. SqlConn.openConnection(). Die nächste Änderung erfolgt in der while-Schleife. string strDBNme = (string) sdrData ["stateabbrev"]; an der Stelle der Staaten müssen Stateabbrev setzen. –