Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2019, 15:52   #1
Влад135
Пользователь
 
Регистрация: 11.02.2018
Сообщений: 48
По умолчанию Не могу найти ошибку в коде Visual studio

здравствуйте у меня есть форма и на ней datagridwievs (я привязал ее к таблице "OBSHA_CHISLENNOST" находящейся в базе данных "DEMYKT"
В самой таблице OBSHA_CHISLENNOST 2 столбца заполненные данными
1)GOD(int)
2)VSEGO_NA_NACHALO_GODA(varchar 50)

Так вот я хочу создать кнопку которая будет сохранять изменения заносимые в эту базу данных.

Сначала я создал хранимую процедуру в sql сервере
Код:
CREATE PROCEDURE [dbo].[sp_CreateUser]
    
@GOD int out,
@VSEGO_NA_NACHALO_GODA varchar(50)
	
AS
    INSERT INTO OBSHA_CHISLENNOST(GOD, VSEGO_NA_NACHALO_GODA)
    VALUES (@god, @VSEGO_NA_NACHALO_GODA)
  
    SET @god=SCOPE_IDENTITY()
GO
Далее в visual studio для кнопки сохранения прописал следующий код
Код:
private void button11_Click(object sender, EventArgs e)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
               
                    connection.Open();
                    adapter = new SqlDataAdapter(sql, connection);
                    commandBuilder = new SqlCommandBuilder(adapter);
                    adapter.InsertCommand = new SqlCommand("sp_CreateUser", connection);
                    adapter.InsertCommand.CommandType = CommandType.StoredProcedure;
                    adapter.InsertCommand.Parameters.Add(new SqlParameter("@god", SqlDbType.Int, 0, "GOD"));
                    adapter.InsertCommand.Parameters.Add(new SqlParameter("@VSEGO_NA_NACHALO_GODA", SqlDbType.VarChar, 50, "VSEGO_NA_NACHALO_GODA"));

                    SqlParameter parameter = adapter.InsertCommand.Parameters.Add("@GOD", SqlDbType.Int, 0, "GOD");
                    parameter.Direction = ParameterDirection.Output;

                    adapter.Update(ds);
                }
            }
Так вот я заношу новые данные в таблицу и выходит ошибка "Procedure or function sp_CreateUser has too many arguments specified."
Вот в чем ошибка? Помогите пожалуйста.
Влад135 вне форума Ответить с цитированием
Старый 10.03.2019, 15:56   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Скорее всего ошибка в вашем коде, а не в коде Visual studio.


Цитата:
Сообщение от Влад135 Посмотреть сообщение
VSEGO_NA_NACHALO_GODA(varchar 50)
Почему это строка?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.03.2019, 16:00   #3
Влад135
Пользователь
 
Регистрация: 11.02.2018
Сообщений: 48
По умолчанию

Ну в базе данных sql так столбец называется "VSEGO_NA_NACHALO_GODA" и имеет тип данных "Varchar(50)" что может быть не так?
Влад135 вне форума Ответить с цитированием
Старый 10.03.2019, 16:06   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

God же out. Понятно же, почему has too many arguments specified. Непонятки какие-то делаешь, с одной стороны присваиваешь его, с другой стороны SCOPE_IDENTITY
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.03.2019, 16:08   #5
Влад135
Пользователь
 
Регистрация: 11.02.2018
Сообщений: 48
По умолчанию

А что тогда нужно изменить? Извините я не совсем понял.
Влад135 вне форума Ответить с цитированием
Старый 10.03.2019, 16:09   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Покажи скрипт создания таблицы. Как этот god описан
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.03.2019, 16:10   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Влад135 Посмотреть сообщение
"VSEGO_NA_NACHALO_GODA" и имеет тип данных "Varchar(50)"
И? Вы так и не ответили почему VSEGO_NA_NACHALO_GODA строка.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.03.2019, 16:11   #8
Влад135
Пользователь
 
Регистрация: 11.02.2018
Сообщений: 48
По умолчанию

Код:
CREATE TABLE [dbo].[OBSHA_CHISLENNOST] (
    [GOD]                   INT          NOT NULL,
    [VSEGO_NA_NACHALO_GODA] VARCHAR (50) NULL
);
Влад135 вне форума Ответить с цитированием
Старый 10.03.2019, 16:14   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

То есть таблица без ключевого поля? Фигня какая-то. out убрать из процедуры и SCOPE_IDENTITY тоже, оно для автоинкрементных ключей. Да и остаток на начало года строковый еще тот прикол )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.03.2019, 16:18   #10
Влад135
Пользователь
 
Регистрация: 11.02.2018
Сообщений: 48
По умолчанию

То есть хранимая процедура должна выглядеть вот так?

Код:
CREATE PROCEDURE [dbo].[sp_CreateUser]
    
	@GOD int,
    @VSEGO_NA_NACHALO_GODA varchar(50)

   
AS
    INSERT INTO OBSHA_CHISLENNOST(GOD, VSEGO_NA_NACHALO_GODA)
    VALUES (@god, @VSEGO_NA_NACHALO_GODA)
  
GO
Влад135 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти у себя ошибку в коде. Буду благодарен, если вы сможете её найти Agent00x Windows Forms 4 25.11.2018 01:17
Не могу найти ошибку в коде Программистер Помощь студентам 3 13.01.2017 00:23
Не могу найти ошибку в коде youngster Паскаль, Turbo Pascal, PascalABC.NET 3 17.11.2013 22:26
не могу найти ошибку в коде pavelstraut Общие вопросы C/C++ 5 24.07.2009 23:20
Не могу найти ошибку в коде! Natasha666 Помощь студентам 1 20.05.2009 09:27