19.02.2020, 07:17 [+3 UTC]
в нашей команде: 4 219 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.81 (18.02.2020)
JS-v.1.35 | CSS-v.3.37

Общие новости:
06.01.2020, 22:45

Форум:
12.02.2020, 12:22

Последний вопрос:
19.02.2020, 01:29
Всего: 151631

Последний ответ:
19.02.2020, 01:11
Всего: 259783

Последняя рассылка:
18.02.2020, 20:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
22.05.2012, 23:59 »
Иван Васильевич Митяев
Спасибо! [вопрос № 186130, ответ № 270919]

РАЗДЕЛ • .NET Framework / C# / Java

Создание программ на программной платформе .NET Framework и языках С# и Java.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 611
solowey
Статус: Специалист
Рейтинг: 259
Асмик Гаряка
Статус: Советник
Рейтинг: 159

Перейти к консультации №:
 

Консультация онлайн # 143244
Раздел: • .NET Framework / C# / Java
Автор вопроса: Штыхов Антон Евгеньевич
Отправлена: 06.09.2008, 22:53
Поступило ответов: 1

Небольшой вопрос по ADO.NET: как добавить запись в таблицу?
Составляем запрос, а дальше что!??

Программа на С#
Зарание благодарен!!! smile

Последнее редактирование 06.09.2008, 23:58 [неизвестный]

Состояние: Консультация закрыта

Ответ # 228729 от Челноков Виктор Альбертович

Здравствуйте, Штыхов Антон Евгеньевич!
private static void SqlCommandPrepareEx(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(null, connection);

// Create and prepare an SQL statement.
command.CommandText =
"INSERT INTO Region (RegionID, RegionDescription) " +
"VALUES (@id, @desc)";
SqlParameter idParam = new SqlParameter("@id", SqlDbType.Int, 0);
SqlParameter descParam =
new SqlParameter("@desc", SqlDbType.Text, 100);
idParam.Value = 20;
descParam.Value = "First Region";
command.Parameters.Add(idParam);
command.Parameters.Add(descParam);

// Call Prepare after setting the Commandtext and Parameters.
command.Prepare();
command.ExecuteNonQuery();

// Change parameter values and call ExecuteNonQuery.
command.Parameters[0].Value = 21;
command.Parameters[1].Value = "Second Region";
command.ExecuteNonQuery();
}
}


Консультировал: Челноков Виктор Альбертович
Дата отправки: 07.09.2008, 15:43

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 143244
Штыхов Антон Евгеньевич

# 1

= общий = | 07.09.2008, 13:24

Написал:


public void AddSolution(string temp,
string name, decimal val)
{
string SQL_String =
"SELECT INTO Problems_Desposition_Table (Name, Desposition, Steps)" +
"VALUES(" + name + "," + temp + "," + val +")";
OleDbCommand comm = new OleDbCommand(SQL_String, conn);

conn.Open();
int rows = comm.ExecuteNonQuery();
conn.Close();
}


Копм указывает на

int rows = cmd.ExecuteNonQuery();

и пишет:

The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

Что не так

Штыхов Антон Евгеньевич

# 2

= общий = | 08.09.2008, 08:02

Исправил на:

public void AddSolution(object temp,
            string name, decimal val)
        {
            string SQL_String =
                "Insert INTO Problems_Desposition_Table (Name, Desposition, Steps)" +
                "VALUES( @name , @temp , @val)";
            OleDbCommand comm = new OleDbCommand(SQL_String, conn);

            conn.Open();
            int rows = comm.ExecuteNonQuery();
            conn.Close();
        }


Комп ругается на туже строку:

[quote]No value given for one or more required parameters.[/quote]

Я отлаживал во всех переменнных корректные числа! Что делать

В таблице есть правда ещё один столбец(ключевой) Num о это просто счётчик!

Челноков Виктор Альбертович

# 3

= общий = | 08.09.2008, 08:39

1. Необходимо описать параметры например
SqlParameter idParam = new SqlParameter("@name", SqlDbType.Text, 100);
2. Присвоить значение каждому параметру

idParam.Value = "пример";

3. Добавить параметр к объекту комманд

comm.Parameters.Add(idParam);


И тогда получим:
public void AddSolution(object temp, string name, decimal val)
{ string SQL_String = "Insert INTO Problems_Desposition_Table (Name, Desposition, Steps)" + "VALUES( @name , @temp , @val)";

OleDbCommand comm = new OleDbCommand(SQL_String, conn);
SqlParameter idParam = new SqlParameter("@name", SqlDbType.Text, 100); // обратить внимание на назначение правильных типов параметров
//перечислить все параметры
idParam.Value = "пример";
//перечислить все параметры
comm.Parameters.Add(idParam);
// добавить все параметры к объекту comm
command.Prepare();

conn.Open();
int rows = comm.ExecuteNonQuery();
conn.Close();
}

Штыхов Антон Евгеньевич

# 4

= общий = | 08.09.2008, 08:49

Ясно! Только у меня база данных Access! Использывать SqlParameter или есть что-то другое!

2. Что такое idParam.Value ?? Вводимая величина!? Но ведь она у меня в переменной!

3ю Это для всех переменных прописывать надо!?

Челноков Виктор Альбертович

# 5

= общий = | 08.09.2008, 09:03

Да извините описался описался
idParam.Value="ывы" - присвоение значения параметру

Описывае все три параметра(толко уточните их типы)
OledbParameter idParam1 = new OledbParameter("@name", DbType.Text, 100);
OledbParameter idParam2= new OledbParameter("@temp", DbType.Text, 100);
OledbParameter idParam3 = new OledbParameter("@val", DbType.Int, 0);

Присваиваем им значения
idParam1.Value="ывы"
idParam2.Value="ывы"
idParam3.Value=8

Добавляем к объекту комманд
comm.Parameters.Add(idParam1);
comm.Parameters.Add(idParam2);
comm.Parameters.Add(idParam3);

Штыхов Антон Евгеньевич

# 6

= общий = | 08.09.2008, 09:35

Написал:

 public void AddSolution(string temp,
            string name, decimal val)
        {
            string SQL_String =
                "Insert INTO Problems_Desposition_Table (Name, Desposition, Steps)" +
                "VALUES( @name , @temp , @val)";
            OleDbCommand comm = new OleDbCommand(SQL_String, conn);
            OleDbParameter param1 = new OleDbParameter("@name", OleDbType.Text, 50);
            param1.Value = "Parametr";
            OleDbParameter param2 = new OleDbParameter("@temp", OleDbType.Text, 100);
            param2.Value = "Parametr2";
            OleDbParameter param3 = new OleDbParameter("@val", OleDbType.SmallInt, 0);
            comm.Parameters.Add(param1);
            comm.Parameters.Add(param2);
            comm.Parameters.Add(param3);
            comm.Prepare();

            conn.Open();
            int rows = comm.ExecuteNonQuery();
            conn.Close();
        }




Теперь комп указывает на вызов функции:
No value given for one or more required parameters.

Челноков Виктор Альбертович

# 7

= общий = | 08.09.2008, 11:14

А третий параметр объявляется, а где присвоение значения
OleDbParameter param3 = new OleDbParameter("@val", OleDbType.SmallInt, 0);

param3.Value = 3; например так

Штыхов Антон Евгеньевич

# 8

= общий = | 08.09.2008, 12:41

Cпасибо Огромное!!!!!!! smile smile smile

Челноков Виктор Альбертович

# 9

= общий = | 08.09.2008, 14:19

smile

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14535 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.81 от 18.02.2020
Версия JS: 1.35 | Версия CSS: 3.37