У меня есть следующая хранимая процедура в моей базе данных SQL Server, который выполняет отлично:SqlDataReader не возвращает никаких данных из SQL Server хранимых процедур
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
Вот мои C# код; sdrData
был инициализирован и кажется правильным, но набор результатов пуст. Пожалуйста помоги.
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 - Я пробовал это и все тот же результат. Моя строка подключения уже открыта, я делаю это раньше. Есть ли способ отслеживать вызов сервера sql и посмотреть, что происходит с этим вызовом? – Cass
Посмотрите на новый ответ, который я опубликовал. он работает и тестируется. вам нужно изменить свой код. откройте свое соединение перед операцией SQL-команды. SqlConn.openConnection(). и следующее изменение находится во время цикла. string strDBNme = (строка) sdrData ["stateabbrev"]; на месте штатов нужно поставить государство. –