Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Динамические параметры в SqlDataSource  [new]
Red Wind
Member

Откуда:
Сообщений: 96
Доброго времени суток. Пытаюсь динамически передать UpdateCommand в SqlDataSource, но из этого ничего не выходит. В событии Page_Load выполняю этот код:
    private void CreatingCommands()
    {
        SqlConnection conn = new SqlConnection(ConnectionString);
        SqlDataAdapter adapter = new SqlDataAdapter(DynamicSqlDataSource.SelectCommand, conn);
        SqlCommandBuilder sqb = new SqlCommandBuilder(adapter);
        adapter.UpdateCommand = sqb.GetUpdateCommand(true);
        DynamicSqlDataSource.UpdateCommand = adapter.UpdateCommand.CommandText;

        //проблема в том, что тип параметров adapter не совпадает с типом SqlDataSource
        for (int i = 0; i <= adapter.UpdateCommand.Parameters.Count - 1; i++)
        {
            Parameter param = new Parameter();
            param.Name = adapter.UpdateCommand.Parameters[i].ParameterName;
            DynamicSqlDataSource.UpdateParameters.Add(param);
        }
    }
Вроде бы всё ок, UpdateCommand передаётся, параметры создаются. Но когда происходит Update, то в окне браузера выскакивает такая ошибка:
Server Error in '/WebSite3' Application.
--------------------------------------------------------------------------------

[b]Must declare the scalar variable "@Original_ID". [/b]
Description: An unhandled exception occurred during the execution of the current web request. 
Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Must declare the scalar variable "@Original_ID".

Source Error: 

An unhandled exception was generated during the execution of the current web request. 
Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Самое неприятное, то что @Original_ID существует в DynamicSqlDataSource.UpdateParameters. Собственно вопрос, как мне корректно предать UpdateParameters в SqlDataSource?
28 фев 07, 12:16    [3842036]     Ответить | Цитировать Сообщить модератору
 Re: Динамические параметры в SqlDataSource  [new]
pecha
Member

Откуда:
Сообщений: 842
Вот это вообще бахни
автор
//проблема в том, что тип параметров adapter не совпадает с типом SqlDataSource
for (int i = 0; i <= adapter.UpdateCommand.Parameters.Count - 1; i++)
{
Parameter param = new Parameter();
param.Name = adapter.UpdateCommand.Parameters.ParameterName;
DynamicSqlDataSource.UpdateParameters.Add(param);
}


И сделай вот так

DynamicSqlDataSource.UpdateParameters.Clear();
DynamicSqlDataSource.UpdateParameters.Add("Original_ID", "CЮДА ЗАСУНЬ ID");


GoDevs.com - Cheap Domain Names, Free/Cheap Windows/Linux Web Hosting (ASP.NET 1.1/2.0, MySql & MS SQL Databases) and much more! Shared Windows Web Hosting (ASP.NET 2.0) now with ASP.NET AJAX!
5 мар 07, 23:33    [3866766]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить