Рейтинг:
28
ZurdoDev
Внимательно изучите свой код. Вы вызываете ExecuteNonQuery еще до того, как добавляете свои параметры. Вам также необходимо изменить свой SQL-оператор, чтобы использовать параметры.
SqlCommand insertCommand = new SqlCommand("INSERT INTO UXFaturas(NumFaturas, Cont1, Cont2) VALUES (@numfatura, @cont, @cont2)", conn);
Добавьте символ @ в предложение VALUES.
Member 13356973
Я вызываю ExecuteNonQuery раньше, потому что если я это сделаю, то после получу ошибку
ZurdoDev
Затем исправьте ошибку. Когда вы вызываете ExecuteNonQuery, это когда он вызывает sql, поэтому, если вы не добавили свои параметры, это не принесет никакой пользы.
Member 13356973
Это де ошибка, которую я получаю:
Системы.Данных.Sqlclient как.Ситуацию sqlexception: не удалось найти хранимую процедуру 'если аргумент object_id('UXFaturas', 'У') имеет значение null создать таблицу UXFaturas(NumFaturas тип char(250), Cont1 тип char(250), Cont2 тип char(250))''.
ZurdoDev
Подумайте о том, что говорит вам ошибка, а затем посмотрите на свой код. Он думает, что вы пытаетесь вызвать хранимую процедуру, потому что вы сказали ему, что собираетесь сделать это с помощью этой строки:
команда.Свойство Commandtype = Система.Данных.Командный тип.Хранимая процедура;
Измените тип команды на текст.
Member 13356973
Теперь у меня нет ошибки, теперь она должна работать, верно?
ZurdoDev
Я не вижу вашего кода, поэтому понятия не имею, все ли у вас в порядке. Но попробуйте и посмотрите, сработает ли это.
Member 13356973
Я могу предоставить вам больше кода, если вам нужно
ZurdoDev
Для вас было бы быстрее просто попробовать.
Member 13356973
Я создал select, чтобы убедиться, что он работает, и он возвращает мне эту "System.Data.SqlClient.SqlCommand".
ZurdoDev
Да, похоже, ты звонил .ToString () в команде SqlCommand.
Я предлагаю вам поискать в google несколько примеров использования c# и sqlcommands, потому что это довольно простой материал, и я думаю, что вам нужно несколько хороших учебников, чтобы начать работу.
Member 13356973
Я поискал в google и получил пример, который использовал
ZurdoDev
Пример не вызывал ExecuteNonQuery перед добавлением параметров.
Member 13356973
Я сделал это:
Команда sqlcommand команды = новый sqlcommand, который();
строки myConnectionString = @"источник данных=ХХХ ; базы данных=ХХХ; идентификатор пользователя=ХХХ ; пароль=ХХХ";
SqlConnection conn = new SqlConnection(myConnectionString);
Sqlcommand command = new SqlCommand ("SELECT * FROM UXFaturas", conn);
Коннектикут.Открыть();
textBox1. Text = команда.Метод toString();
Коннектикут.Закрывать();
ZurdoDev
Что вы хотите узнать из инструкции SELECT? Потому что все, что делает этот код, - это печатает слова "команда" в текстовом поле.
Member 13356973
Я хочу проверить, правильно ли он сохранен внутри таблицы
ZurdoDev
Затем откройте SQL management studio и посмотрите.
Member 13356973
Там ничего не было написано
ZurdoDev
После всего функции.
Member 13356973
Я добавлю это в вопрос
ZurdoDev
У вас есть 2 разные команды. Один для создания таблицы, и это тот, который вы выполняете и добавляете свои параметры.
Member 13356973
но это не добавление параметров
ZurdoDev
Потому что вы ставите их не на ту команду. У вас есть команда и insertCommand.
Вы должны сделать их все одной командой.
Member 13356973
Я должен добавить insertCommand в команду?
ZurdoDev
Нет. Я настоятельно рекомендую вам пройти через некоторые учебные пособия. Это очень простой материал.
Используйте одну команду.
Текст команды будет "
ЕСЛИ OBJECT_ID ..... IS NOT NULL CREATE TABLE...
Вставить в таблицу (field1, field2)
Значения (@field1, @field2)
...
УМК.Параметры.AddWithValue ("@field1", значение)
...
Вы действительно, действительно, нужно понять, что вы делаете. Если бы вы это сделали, это было бы довольно легко. Я не пытаюсь оскорбить вас, но вы задаете очень простые вопросы, и вам было бы лучше потратить некоторое время, чтобы изучить этот процесс.
Member 13356973
Сделал это, и это все еще не работает
Member 13356973
По-прежнему нет ошибок, но не сохраняет в sql
ZurdoDev
Помните, что мы не можем видеть ваш код, поэтому обновите свой вопрос полным sql-кодом, а не всем остальным, только sql-кодом.
ZurdoDev
Хорошо, теперь посмотрите на свой sql-оператор и скажите мне, почему он не вставляет никаких данных.
Member 13356973
Если бы я знал, то сказал бы тебе
ZurdoDev
Просто притормози и прочитай свой sql-оператор. У вас нет оператора insert, так как же он будет вставлять данные?
Member 13356973
Так как же мне это сделать?
ZurdoDev
Я уже ответил выше, когда сказал вам использовать одну команду. Поместите оба оператора в одну команду. Посмотрите на мой вышеприведенный комментарий.
Member 13356973
У вас нет никакой вставки в вашем комментарии
ZurdoDev
- Да, знаю. Это точный комментарий сверху:
-----------------------------------------------
Нет, я настоятельно рекомендую вам пройти несколько уроков. Это очень простой материал.
Используйте одну команду.
Текст команды будет "
ЕСЛИ OBJECT_ID ..... IS NOT NULL CREATE TABLE...
Вставить в таблицу (field1, field2)
Значения (@field1, @field2)
...
УМК.Параметры.AddWithValue ("@field1", значение)
...
Вы действительно, действительно, нужно понять, что вы делаете. Если бы вы это сделали, это было бы довольно легко. Я не пытаюсь оскорбить вас, но вы задаете очень простые вопросы, и вам было бы лучше потратить некоторое время, чтобы изучить этот процесс.
Member 13356973
получил эту ошибку, делая так, как ты сказал
Системы.Данных.Sqlclient как.Неправильный синтаксис ситуацию sqlexception: 'около ')'.'
Я обновил код вопроса для того, что у меня есть сейчас
ZurdoDev
Затем исправьте синтаксис. Я не знаю, чего ты от меня хочешь.
Member 13356973
Какой синтаксис? Ошибка останавливает программу и появляется здесь:
команда.Метод executenonquery();
ZurdoDev
Это ошибка sql. Обратите внимание, что это SqlException. Это означает, что ваш SQL-оператор неверен.
Member 13356973
какое заявление?
ZurdoDev
Свойство commandtext на sqlcommand, который хранит инструкции SQL, которые будут выполняться. В вашем случае он имеет оба SQL-оператора. Но CommandText - это то, что будет отправлено на sql-сервер. Посмотрите на него, найдите синтаксическую ошибку и исправьте ее.
Member 13356973
А что, если я попробую {} поймать{}?
ZurdoDev
У вас должен быть один, но это не решит проблему. Опять же, вам нужно понять, что вы делаете. Перестаньте пытаться копировать чужой код и заставьте его работать в вашей среде. Потратьте время, чтобы научиться.