Member 13331557 Ответов: 2

Как добавить несколько значений текстового поля в один столбец таблицы базы данных


Привет,
У меня есть веб-страница с несколькими парами текстовых полей - одно для coursecode, а другое для int courseunit. В нижней части страницы у меня есть кнопка Сохранить, и я хочу, чтобы при нажатии на нее пользовательский ввод в каждой паре сохранялся в моих столбцах courseCode и courseUnit таблицы курсов в моей базе данных для всех моих пар текстовых полей. Поэтому я говорю, что у меня есть около 20 текстовых полей, 10 для кодов курсов и 10 для единиц курса, которые должны храниться одновременно всего в двух столбцах таблицы БД.

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

protected void SaveBtn_Click(object sender, EventArgs e)
        {
            //save coursecodes and units entered to database
            try
            {

                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {

                        sqlCon.Open();
                    //string Query = "INSERT INTO Courses (courseCode,courseUnit) VALUES (@courseCode1,@courseCode2,@courseCode3,@courseCode4,@courseCode5,@courseCode6,@courseCode7,@courseCode8,@courseCode9,@courseCode10,@courseCode11,@courseCode12,@courseCode13,@courseCode14,@courseCode15,@courseCode16,@courseUnit1,@courseUnit2,@courseUnit3,@courseUnit4,@courseUnit5,@courseUnit6,@courseUnit7,@courseUnit8,@courseUnit9,@courseUnit10,@courseUnit11,@courseUnit12,@courseUnit13,@courseUnit14,@courseUnit15,@courseUnit16)";
                    string Query = "INSERT INTO Courses (courseCode,courseUnit) VALUES (@courseCode,@courseUnit)";
                    SqlCommand sqlCmd = new SqlCommand(Query, sqlCon);

                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox1")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox2")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox7")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox9")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox13")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox15")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox19")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox21")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox25")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox27")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox31")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox33")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox37")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox39")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox5")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseCode", SqlDbType.NChar).Value = (FindControl("TextBox11")) ?? (object)DBNull.Value;



                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox3")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox4")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox8")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox10")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox14")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox16")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox20")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox22")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox26")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox28")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox32")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox34")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox38")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox40")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox6")) ?? (object)DBNull.Value;
                    sqlCmd.Parameters.AddWithValue("@courseUnit", SqlDbType.Int).Value = (FindControl("TextBox12")) ?? (object)DBNull.Value;


                    //sqlCmd.Parameters.AddWithValue("@courseCode1", SqlDbType.NChar).Value = (FindControl("TextBox1")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode2", SqlDbType.NChar).Value = (FindControl("TextBox2")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode3", SqlDbType.NChar).Value = (FindControl("TextBox7")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode4", SqlDbType.NChar).Value = (FindControl("TextBox9")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode5", SqlDbType.NChar).Value = (FindControl("TextBox13")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode6", SqlDbType.NChar).Value = (FindControl("TextBox15")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode7", SqlDbType.NChar).Value = (FindControl("TextBox19")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode8", SqlDbType.NChar).Value = (FindControl("TextBox21")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode9", SqlDbType.NChar).Value = (FindControl("TextBox25")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode10", SqlDbType.NChar).Value = (FindControl("TextBox27")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode11", SqlDbType.NChar).Value = (FindControl("TextBox31")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode12", SqlDbType.NChar).Value = (FindControl("TextBox33")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode13", SqlDbType.NChar).Value = (FindControl("TextBox37")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode14", SqlDbType.NChar).Value = (FindControl("TextBox39")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode15", SqlDbType.NChar).Value = (FindControl("TextBox5")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseCode16", SqlDbType.NChar).Value = (FindControl("TextBox11")) ?? (object)DBNull.Value;



                    //sqlCmd.Parameters.AddWithValue("@courseUnit1", SqlDbType.Int).Value = (FindControl("TextBox3")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit2", SqlDbType.Int).Value = (FindControl("TextBox4")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit3", SqlDbType.Int).Value = (FindControl("TextBox8")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit4", SqlDbType.Int).Value = (FindControl("TextBox10")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit5", SqlDbType.Int).Value = (FindControl("TextBox14")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit6", SqlDbType.Int).Value = (FindControl("TextBox16")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit7", SqlDbType.Int).Value = (FindControl("TextBox20")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit8", SqlDbType.Int).Value = (FindControl("TextBox22")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit9", SqlDbType.Int).Value = (FindControl("TextBox26")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit10", SqlDbType.Int).Value = (FindControl("TextBox28")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit11", SqlDbType.Int).Value = (FindControl("TextBox32")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit12", SqlDbType.Int).Value = (FindControl("TextBox34")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit13", SqlDbType.Int).Value = (FindControl("TextBox38")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit14", SqlDbType.Int).Value = (FindControl("TextBox40")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit15", SqlDbType.Int).Value = (FindControl("TextBox6")) ?? (object)DBNull.Value;
                    //sqlCmd.Parameters.AddWithValue("@courseUnit16", SqlDbType.Int).Value = (FindControl("TextBox12")) ?? (object)DBNull.Value;



                    //    sqlCmd.Parameters.AddWithValue("@courseCode1", (FindControl("TextBox1")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode2", (FindControl("TextBox2")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode3", (FindControl("TextBox7")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode4", (FindControl("TextBox9")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode5", (FindControl("TextBo13")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode6", (FindControl("TextBox15")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode7", (FindControl("TextBox19")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode8", (FindControl("TextBox21")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode9", (FindControl("TextBox25")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode10", (FindControl("TextBox27")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode11", (FindControl("TextBox31")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode12", (FindControl("TextBox33")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode13", (FindControl("TextBox37")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode14", (FindControl("TextBox39")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode15", (FindControl("TextBox5")));
                    //    sqlCmd.Parameters.AddWithValue("@courseCode16", (FindControl("TextBox11")));



                    //sqlCmd.Parameters.AddWithValue("@courseUnit1", (FindControl("TextBox3")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit2", (FindControl("TextBox4")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit3", (FindControl("TextBox8")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit4", (FindControl("TextBox10")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit5", (FindControl("TextBo14")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit6", (FindControl("TextBox16")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit7", (FindControl("TextBox20")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit8", (FindControl("TextBox22")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit9", (FindControl("TextBox26")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit10", (FindControl("TextBox28")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit11", (FindControl("TextBox32")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit12", (FindControl("TextBox34")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit13", (FindControl("TextBox38")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit14", (FindControl("TextBox40")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit15", (FindControl("TextBox6")));
                    //sqlCmd.Parameters.AddWithValue("@courseUnit16", (FindControl("TextBox12")));
                    sqlCmd.ExecuteNonQuery();
                        lblSuccessMessage.Text = "Courses successfully added";
                        lblErrorMessage.Text = "";

                   
                }
            }
                catch (Exception ex)
            {

                lblSuccessMessage.Text = "";
                lblErrorMessage.Text = ex.Message;
            }


            /*  //use coursecode input to name new columns in gridview
              foreach (var c in GridView1.HeaderRow.Cells)
              {

              }
              */

        }

В моем коде вы увидите, что я использовал несколько подобных подходов, но все они привели к ошибке

2 Ответов

Рейтинг:
12

Karthik_Mahalingam

храните весь код курса и единицу курса в списке keyvalue пара и итерация их для вставки в БД

string Query = "INSERT INTO Courses (courseCode,courseUnit) VALUES (@courseCode,@courseUnit)";
           SqlCommand sqlCmd = new SqlCommand(Query, sqlCon);
           List<KeyValuePair<object, object>> lst = new System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<object, object>>();
           lst.Add( new System.Collections.Generic.KeyValuePair<object,object> ((FindControl("TextBox1")) ?? (object)DBNull.Value ,  (FindControl("TextBox3")) ?? (object)DBNull.Value));
           lst.Add(new System.Collections.Generic.KeyValuePair<object, object>((FindControl("TextBox2")) ?? (object)DBNull.Value, (FindControl("TextBox4")) ?? (object)DBNull.Value));
           foreach (var item in lst)
           {
               sqlCmd.Parameters.AddWithValue("@courseCode", item.Key);
               sqlCmd.Parameters.AddWithValue("@courseUnit", item.Value);
               sqlCmd.ExecuteNonQuery();
           }
           lblSuccessMessage.Text = "Courses successfully added";


Member 13331557

Этот подход кажется сработал как я знаю получите другую ошибку -

Невозможно вставить значение NULL в столбец 'courseCode', таблицу 'ClassDB.dbo.Courses'; столбец не допускает значений null. Вставить не удается. Заявление было прекращено.

Я получаю ту же ошибку, даже если столбец настроен на прием нулей

Karthik_Mahalingam

добавить условие проверки null

if(item.key!= null && item.value != null){
sqlCmd.Parameters.AddWithValue("@courseCode", item.Key);
               sqlCmd.Parameters.AddWithValue("@courseUnit", item.Value);
}
               sqlCmd.ExecuteNonQuery();


Примечание:но вам придется сначала проверить, почему это значение равно нулю..

Member 13331557

"Примечание: но вам придется проверить, почему значение null в первую очередь..."
Есть идеи? cus 'только' null ' значения добавляются в мою базу данных для всех текстовых полей

Karthik_Mahalingam

вам нужно выполнить проверку в пользовательском интерфейсе, а также отладить функцию FindControl() и посмотрите, к чему это приведет null

Рейтинг:
0

Member 13331557

мой последний код

protected void SaveBtn_Click(object sender, EventArgs e)
   {
       //save coursecodes and units entered to database
       try
       {
           using (SqlConnection sqlCon = new SqlConnection(connectionString))
           {

               sqlCon.Open();
               string Query = ("INSERT INTO Courses (courseCode,courseUnit) VALUES (@courseCode,@courseUnit)");
               SqlCommand sqlCmd = new SqlCommand(Query, sqlCon);

               //working single pair
               //sqlCmd.Parameters.AddWithValue("@courseCode", courseCodeTB.Text);
               //sqlCmd.Parameters.AddWithValue("@courseUnit", courseUnitTB.Text);
               //sqlCmd.ExecuteNonQuery();
               //lblSuccessMessage.Text = "Courses successfully added";
               //lblErrorMessage.Text = "";



               List<KeyValuePair<object, object>> lst = new System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<object, object>>();

               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox1.Text ?? (object)DBNull.Value, TextBox3.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox2.Text ?? (object)DBNull.Value, TextBox4.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox7.Text ?? (object)DBNull.Value, TextBox8.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox9.Text ?? (object)DBNull.Value, TextBox10.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox13.Text ?? (object)DBNull.Value, TextBox14.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox15.Text ?? (object)DBNull.Value, TextBox16.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox19.Text ?? (object)DBNull.Value, TextBox20.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox21.Text ?? (object)DBNull.Value, TextBox22.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox25.Text ?? (object)DBNull.Value, TextBox26.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox27.Text ?? (object)DBNull.Value, TextBox28.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox31.Text ?? (object)DBNull.Value, TextBox32.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox33.Text ?? (object)DBNull.Value, TextBox34.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox37.Text ?? (object)DBNull.Value, TextBox38.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox39.Text ?? (object)DBNull.Value, TextBox40.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox5.Text ?? (object)DBNull.Value, TextBox6.Text ?? (object)DBNull.Value));
               lst.Add(new System.Collections.Generic.KeyValuePair<object, object>(TextBox11.Text ?? (object)DBNull.Value, TextBox12.Text ?? (object)DBNull.Value));


               foreach (var item in lst)
               {
                   if (item.Key != null && item.Value != null)
                   {
                       sqlCmd.Parameters.Clear();
                       sqlCmd.Parameters.AddWithValue("@courseCode", item.Key);
                       sqlCmd.Parameters.AddWithValue("@courseUnit", item.Value);
                   }
                   sqlCmd.ExecuteNonQuery();
               }
               lblSuccessMessage.Text = "Courses successfully added";



           }
       }
           catch (Exception ex)
       {

           lblSuccessMessage.Text = "";
           lblErrorMessage.Text = ex.Message;
       }


       /*  //use coursecode input to name new columns in gridview
         foreach (var c in GridView1.HeaderRow.Cells)
         {

         }
         */

   }