Проблема с синтаксисом sql

1. btr19991 15.05.20 12:24 Сейчас в теме
Здраствуйте пишу код для вставки строки в созданную БД.

код кнопки на добавление записи :
private void button1_Click(object sender, EventArgs e)
{
string strConn = *"Data Source=ZELIM-ПК\SQLEXPRESS;Initial Catalog = Поликлиника; Integrated Security = True";
int a,k,dio;
string b, c, d, r, p;
float f;
DateTime date;
a = Convert.ToInt32(textBox1.Text);
k = Convert.ToInt32(textBox9.Text);
dio = Convert.ToInt32(textBox10.Text);
b = textBox2.Text;
c = textBox3.Text;
d = textBox4.Text;
r = textBox6.Text;
p = textBox7.Text;
f = Convert.ToSingle(textBox8.Text);
date = Convert.ToDateTime(textBox5.Text);
string sInsSql = "Ins ert in to Пациенты(Номеркарты, Фамилия, Имя, Отчество, Датарождения, Адрес, Пол, Скидканаобслуживание, Кодлечащеговрача,Коддиагнозаустановленного) Values("+a+" ,"+b+" ,"+c+" ,"+d+" ,"+date+" ,"+r+" ,"+p+" ,"+f+" ,"+k+" ,"+dio+")";
string sInsSotr = string.Format(sInsSql, a, b, c, d, date, r, p, f, k, dio);
SqlConnection Conn = new SqlConnection(strConn);
SqlCommand cmdIns = new SqlCommand(sInsSotr, Conn);
Conn.Open();
cmdIns.ExecuteNonQuery();
Conn.Close();
}

Возникает такая ошибка System.Data.SqlClient.SqlException: "Неправильный синтаксис около конструкции ","."
Можете подсказать в чем дело? Второй день кручусь понять не могу.Причем ошибка выдает именно на cmdIns.ExecuteNonQuery(); . Буду рад любой помощи
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
9. soft_wind 15.05.20 13:18 Сейчас в теме
(1) сколько лишнего кода!!! Зачем все эти форматирования в число - обратно - в строку - в формат... бред какой-то
чем больше бредовых команд, тем больше места для ошибок
уберите все ненужное,
сформируйте правильную ТЕКСТОВУЮ строку инсера - и все!!!
перед ее выполнением сделайте ее Печать или что там у вас
nomad_irk; +1 Ответить
10. btr19991 15.05.20 13:32 Сейчас в теме
(9) форматирования нужны, т.к. все что я ввожу в текстбоксы считается string и подходит не под все столбцы таблицы Пациенты. Например тот же float обязателен ибо в бд он храниться как значение float и не примет string значение. Если вы все еще считаете что они лишние , то если не сложно я попрошу вас привести пример того как вы предлагаете расписать insert
11. antz 15.05.20 14:13 Сейчас в теме
(10) В запрос все равно уйдет строка.

"insеrt intо Пациенты(код) values(1)" - это все строка, хоть в базе код и имеет тип int.
12. antz 15.05.20 14:19 Сейчас в теме
(10) А строковые значения в запрос передавать надо, если мне не изменяет склероз, так:

"insеrt intо Пациенты(Фамилия) values('Иванов')"
13. nomad_irk 72 15.05.20 14:32 Сейчас в теме
(10)Если FLOAT не может быть преобразован в STRING и обратно, то в этом случае вам необходимо использовать параметры запроса.
14. btr19991 15.05.20 14:54 Сейчас в теме
(13) Я все равно как то не очень понял. Если кому не трудно будет и у кого есть микрофон можете в дискорде помочь через стрим?
2. user1407549 1 15.05.20 12:46 Сейчас в теме
Вы сначала превращаете Значение TextBox9.TEXT в Int32 (переменная "а"), а затем добавляете переменную "а" (целочисленную) в текст запроса.
Может быть, при формировании текста запроса все его слагаемые привести к типу "строка"?
4. btr19991 15.05.20 12:56 Сейчас в теме
(2)Здраствуйте я перевожу в int потому что в моей Бд хранится именно такое значение переменной. Поэтому я все перевел в типы данных которые хранятся в Бд.
3. antz 15.05.20 12:56 Сейчас в теме
А вставляемые строки в кавычки заключать не надо в тексте запроса?
5. btr19991 15.05.20 12:58 Сейчас в теме
(3)вот так вы имеете ввиду ? "+"a"+"
6. antz 15.05.20 13:01 Сейчас в теме
(5)

Values("+a+" , '"+b+"' ,'"+... и т.д.

Текст запроса в чистом виде какой получается?
7. btr19991 15.05.20 13:12 Сейчас в теме
(6)спасибо за ответ как только доберусь до компьютера обязательно попробую , но можно уточнение - вставлять одинарные кавычки во всех кроме первой и последней строки?
8. antz 15.05.20 13:14 Сейчас в теме
(7) Оборачивать в кавычки строковые значения, которые вставлять надо. Для чисел кавычки не нужны.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот