powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / update OleDbDataAdapter необходимо объявить скалярную переменную
9 сообщений из 9, страница 1 из 1
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298398
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Повторял примеры из учебника и возникли вопросы.

Есть таблица в ms sql server
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE [dbo].[users](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [varchar](50) NOT NULL,
	[locked] [bit] NOT NULL,
 CONSTRAINT [PK_users] PRIMARY KEY CLUSTERED 



из нее данные выводятся в datagridview через OleDbDataAdapter с отсоединением от базы. Потом делается сохранение изменений.

Код: 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.
25.
26.
27.
28.
29.
30.
31.
    //создаем соединение conection
            connectDB();

            OleDbDataAdapter adapter = new OleDbDataAdapter("Select * from users",connection);

 //настраиваем команду сохранения изменений (этот вариант не работает.)
    //      /*
            adapter.UpdateCommand = new OleDbCommand(               
                "update users set "+
                "name = @name, locked = @locked" +
                    " where id =@id ");
    //   */


            
            //настраиваем команду сохранения изменений (этот вариант из учебника работает)
            
            /*
            adapter.UpdateCommand = new OleDbCommand("update users set " +
                                                       "name = ?, locked = ?" +
                                                            " where id =?");
            // */
            adapter.UpdateCommand.Parameters.Add("@name",OleDbType.VarChar,50,"name");
            adapter.UpdateCommand.Parameters.Add("@locked", OleDbType.Boolean,10, "locked");
            
            adapter.UpdateCommand.Parameters.Add("@id", OleDbType.Integer, 20, "id");

            adapter.UpdateCommand.Connection = connection;

            //сохраняем изменения  
            adapter.Update(dataset.Tables[0]);



в учебном примере параметры в команду update передаются через "?", так все проходит нормально. Я попробовал заменить параметры на именованные переменные, но выводится ошибка " Необходимо объявить скалярную переменную "@name"."
Похоже это ошибка от ms sql. Как надо оформлять команду чтоб параметры можно было передавать по имени, а не подгонять по позиции?
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298406
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В OleDB нет именованных параметров.
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298431
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransaВ OleDB нет именованных параметров.

при использовании OleDbDataAdapter параметры можно передавать только через "?", других способов нет?
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298437
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lgfortibransaВ OleDB нет именованных параметров.

при использовании OleDbDataAdapter параметры можно передавать только через "?", других способов нет?Да.
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298452
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransaДа.

Спасибо.
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298457
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lgfortibransaВ OleDB нет именованных параметров.

при использовании OleDbDataAdapter параметры можно передавать только через "?", других способов нет?
Провайдер сменить .
накой oledb для mssql?
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298459
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилvova_ukr_lgпропущено...


при использовании OleDbDataAdapter параметры можно передавать только через "?", других способов нет?
Провайдер сменить .
накой oledb для mssql?

это учебный пример, я делаю примеры из учебников, видеоуроков и пробую менять. а для чего лучше использовать oledb или его вообще лучше не использовать?
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298464
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lgИзопропилпропущено...

Провайдер сменить .
накой oledb для mssql?

это учебный пример, я делаю примеры из учебников, видеоуроков и пробую менять. а для чего лучше использовать oledb или его вообще лучше не использовать?Когда есть нужный провайдер, тогда используют его, если его нет то можно и OleDB тянуть.
...
Рейтинг: 0 / 0
update OleDbDataAdapter необходимо объявить скалярную переменную
    #39298466
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortibransa,

Понятно
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / update OleDbDataAdapter необходимо объявить скалярную переменную
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]