|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
Вот какая то странность. Есть рабочая хранимая процедура: которая через SqlManager возвращает значение: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Смысл её в том что она возвращает конкретное определенное число, если такая запись есть в базе а если нет то возвращает 0. Через менеджер он возвращает значение, а через код программы не получается вернуть с помощью C#. Код обращения к хранимой процедуре: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Но вот пчему то О- это всегда null!!! Почему? Через менеджер значение нормально возвращается? _________________________________________________________________________________ Жизнь - это сплошное движение, кто-то шевелит извилинами, а кто-то хлопает ушами... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:07 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
Solomka, Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:17 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
DECLARE @last int - это вы объявили внутреннею локальную переменную и естественно она за пределы процедуры не выйдет Переменные объявляются в теле пакета или процедуры при помощи инструкции DECLARE, а значения им присваиваются при помощи инструкций SET или SELECT. При помощи этой инструкции можно объявлять переменные курсоров для использования в других инструкциях. После декларации все переменные инициализируются значением NULL, если иное значение не предоставляется как часть декларации. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:19 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
DezaSolomka, Код: sql 1. 2. 3. 4.
Изменила текст хранимой процедуры: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Обращаюсь к хранимой процедуре: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
При попытке обратиться к Хранимой процедуре выдается следующая ошибка: ошибкаОшибка сервера в приложении '/AnotherHost/systemManagerControl'. Процедура или функция "SelectLastProcentFromTaskFromIdRecord" ожидает параметр "@last", который не был указан. Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода. Сведения об исключении: System.Data.SqlClient.SqlException: Процедура или функция "SelectLastProcentFromTaskFromIdRecord" ожидает параметр "@last", который не был указан. Ошибка источника: Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений. Трассировка стека: [SqlException (0x80131904): Процедура или функция "SelectLastProcentFromTaskFromIdRecord" ожидает параметр "@last", который не был указан.] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +2030802 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5009584 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33 System.Data.SqlClient.SqlDataReader.get_MetaData() +86 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +311 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +987 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +10 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +144 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +319 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92 System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1618 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +21 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74 System.Web.UI.WebControls.DetailsView.DataBind() +4 System.Web.UI.Control.DataBindChildren() +201 System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +101 System.Web.UI.Control.DataBind() +15 System.Web.UI.Control.DataBindChildren() +201 System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +101 System.Web.UI.Control.DataBind() +15 System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +166 System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +3896 System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +66 System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14 System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +128 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +33 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74 System.Web.UI.WebControls.GridView.DataBind() +4 System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66 System.Web.UI.WebControls.GridView.OnPreRender(EventArgs e) +26 System.Web.UI.Control.PreRenderRecursiveInternal() +103 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Control.PreRenderRecursiveInternal() +175 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496 Почем говоритья чере параметр не передан, если я его передаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:38 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
Solomka, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
как то так c ADO.NET давно не работаю ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:51 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
забыл для idrecord, добавить Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:56 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
Dezaзабыл для idrecord, добавить Код: c# 1.
Возвращается значение снова null. Однако, если смотреть через отладчик то значение параметра @last изменяется с 0 на правильное значение. А как сделать чтобы ХП сразу возвращала правильное значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 16:43 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
Solomka, ХП у тебя возвращает правильное значение, научись работать с переменными на стороне кода тыц ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 16:51 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
вроде так, попробуй Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 16:56 |
|
Не берет значение из Хранимой процедуры
|
|||
---|---|---|---|
#18+
Dezaвроде так, попробуй Код: c# 1. 2. 3. 4.
Да у меня вчера так и получилось. Но меня интересовал вопрос можно это же значение получить с помощью кода: Код: c# 1.
как нужно изменить ХП чтобы заработало... Ведь в описании сказано, что этот метод возвращает значение первого столбца первой записи. то есть по идее он должен возвращать новое значение из ХП. И через Managment Studio ХП тоже возвращает правильное значение. странно как-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 16:22 |
|
|
start [/forum/topic.php?fid=17&msg=37803979&tid=1350345]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 313ms |
total: | 455ms |
0 / 0 |