Ravindran12 Ответов: 1

Как теперь сохранить мои данные в SQL server


Я сделал 2 таблицы в базе данных с помощью одной кнопки. Теперь, почему мои данные не сохраняются в базе данных ?

Что я уже пробовал:

SqlDataAdapter da2 = new SqlDataAdapter("SELECT isnull(max(cast(ID as int)),0)+1 FROM LAB_SH_LINE", con);
                DataTable dt2 = new DataTable();
                da2.Fill(dt2);
                string sid2 = Prog + DateTime.Now.ToString("yyMMdd") + '-' + ((int)dt.Rows[0][0]).ToString("000");

                if (cmd.Connection.State == ConnectionState.Open)
                {
                    cmd.Connection.Close();
                }
                con.Open();
                SqlCommand cmd2 = new SqlCommand("Insert into LAB_SH_LINE values(@sid,@Value)", con);
                cmd2.Parameters.AddWithValue("sid", sid2);
                cmd2.Parameters.AddWithValue("Value", TextBox4.Text);
                cmd2.Parameters.AddWithValue("Value", TextBox5.Text);
                cmd2.Parameters.AddWithValue("Value", TextBox6.Text);
                cmd2.Parameters.AddWithValue("Value", TextBox7.Text);
                cmd2.Parameters.AddWithValue("Value", TextBox8.Text);
                cmd2.Parameters.AddWithValue("Value", TextBox9.Text);
                cmd2.Parameters.AddWithValue("Value", TextBox10.Text);
                cmd.Parameters.AddWithValue("Water_Level", DropDownList5.SelectedValue);
                cmd.ExecuteNonQuery();

1 Ответов

Рейтинг:
4

OriginalGriff

Сделайте себе одолжение: вернитесь к своему предыдущему вопросу и прочитайте то, что я сказал там вчера: Как сохранить эти данные в БД[^]
За исключением "конечной запятой" вы проигнорировали все это.

Итак краткое изложение пунктов вам уже было дано:
1) никогда не делайте "анонимных вставок"
2) Вы почти наверняка не должны вставлять значения идентификаторов
3) Вам нужно указать значение для каждого из параметров в вашем операторе INSERT
4) имена параметров должны совпадать в вызове AddWithValue и инструкции INSERT

Вы должны исправить эти вещи!

А теперь продолжение "как не надо делать вставку". :вздох:

Что, черт возьми, вы ожидаете, что SQL будет делать с "Water_Level" в качестве параметра? Вы даже не пытаетесь ссылаться на него в операторе INSERT, поэтому он вообще не имеет представления о том, что он должен даже искать параметр с таким именем.

Куда должны идти значения текстового поля? Вы даете им всем одно и то же "имя параметра"!
Если вы хотите добавить несколько текстовых полей в свою строку, вам нужно перечислить их как разные имена параметров и ссылаться на них как таковые в инструкции INSERT.

Хватит гадать. Начните думать и перестаньте игнорировать то, что мы говорим, в надежде, что вы знаете лучше, так что в конце концов все получится, если вы просто угадаете еще немного! Этого не будет...