Я новичок в использовании SqlDataAdpter
и пытаюсь выполнить хранимую процедуру. Хранимая процедура выполняется успешно, но строки не возвращаются. Я использовал SQL Server Profiler для мониторинга вызова, и он успешно выполняется (я могу скопировать и выполнить запрос из профилировщика без его изменения и получить результаты).
У меня есть следующее:
public ActionResult Index()
{
SqlConnection conn = null;
DataSet results = null;
try
{
string connectionString = // ... my connection
conn = new SqlConnection(connectionString );
string query = @"usp_mySP";
conn.Open();
SqlDataAdapter sqlAdpt = new SqlDataAdapter(query, conn);
sqlAdpt.SelectCommand.CommandType = CommandType.StoredProcedure;
var dataDate = new SqlParameter { ParameterName = "@DataDate", Value = DateTime.Now };
var idList = new SqlParameter { ParameterName = "@IDList", Value = "1231,2324,0833" };
sqlAdpt.SelectCommand.Parameters.Add(dataDate);
sqlAdpt.SelectCommand.Parameters.Add(idList);
results = new DataSet();
sqlAdpt.Fill(results);
sqlAdpt.Dispose();
}
catch (SqlException e)
{
throw new Exception("Exception:" + e.Message);
}
finally
{
if (conn != null)
conn.Close();
}
return View(results);
}
Когда я проверяю DataSet
через отладчик, он всегда возвращает 0 строк.
Помогите, пожалуйста, что я делаю не так?
Примечание. Я также пытался (но НЕ предпочитаю) выполнять команду SQL:
EXEC usp_mySP @DataDate, @IDList
и это тоже не сработало, так как я получил ошибки преобразования int
в varchar
.
set nocount on
в начале вашего SP. - person user212514   schedule 24.06.2016SQL Profiler
для захвата того, что SQL собирается на сервер? Вы отлаживали свой SP? Может быть полезно увидеть вашу логику внутри вашего SP. Иногда формат даты, отправленный .Net, может не совпадать с форматом даты, ожидаемым сервером БД!! - person techspider   schedule 24.06.2016set nocount on
. Этого не было. Теперь работает Спасибо! - person usr4896260   schedule 24.06.2016