faizy001 Ответов: 1

Вставка пустых данных в базу данных


я хочу вставить данные в базу данных. но если записей нет и я нажимаю на кнопку.таким образом, никакие данные не должны быть вставлены. пожалуйста, проверьте мои коды

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

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MYDB;Integrated Security=True");
           con.Open();
           SqlCommand cmd;
           string query = "insert into Employee(ID,Name, Age, Department, Salary, DateOFBirth) values(@ID,@Name, @Age, @Department, @Salary, @DateOFBirth)";

              cmd = new SqlCommand(query,con);
           if (cmd.CommandText == "")
           {
               cmd.Parameters.AddWithValue("@ID",null);
               cmd.Parameters.AddWithValue("@Name",null);
               cmd.Parameters.AddWithValue("@Age",null);
               cmd.Parameters.AddWithValue("@Department",null);
               cmd.Parameters.AddWithValue("@Salary",null);
               cmd.Parameters.AddWithValue("@DateOFBirth",null);

           }
           else
           {
               cmd.Parameters.AddWithValue("@ID", textBox1.Text);
               cmd.Parameters.AddWithValue("@Name", textBox2.Text);
               cmd.Parameters.AddWithValue("@Age", textBox3.Text);
               cmd.Parameters.AddWithValue("@Department", textBox4.Text);
               cmd.Parameters.AddWithValue("@Salary", textBox5.Text);
               cmd.Parameters.AddWithValue("@DateOFBirth", textBox6.Text);

           }


           cmd.ExecuteNonQuery();
           con.Close();

ZurdoDev

1. я не понимаю, в чем заключается Ваш вопрос.
2. Вы, если утверждение ничего не значит. Вы только что создали объект cmd, а затем проверили, является ли CommandText пустым. Конечно, она пуста, вы только что ее создали. Таким образом, он всегда будет посылать null. Правильный способ отправки null-это DBNull.Значение, а не ноль.

[no name]

Должно быть очевидно, в чем ваша проблема. Текст команды никогда не будет пустой строкой. Вам нужно научиться пользоваться отладчиком.

1 Ответов

Рейтинг:
0

P_Z

Вы пытались заменить null на

DBNull.Value
?


faizy001

ДА Я ТАК И СДЕЛАЛ НО
строку запрос = "вставить в сотрудник(ID,имя, возраст, отдел, зарплата, DateOFBirth) значения(@ИД@имя, @возраст, отдел@, @заработной платы, @DateOFBirth)";

cmd = new SqlCommand(query, con);
if (cmd. CommandText==null)
{
УМК.Параметры.AddWithValue ("@ID", Convert.ToInt32(DBNull.Ценность));
УМК.Параметры.AddWithValue ("@Name", DBNull.Ценность);
УМК.Параметры.AddWithValue ("@Age", DBNull.Ценность);
УМК.Параметры.AddWithValue ("@Department", DBNull.Ценность);
УМК.Параметры.AddWithValue ("@Зарплата", DBNull.Ценность);
УМК.Параметры.AddWithValue ("@DateOFBirth", DBNull.Ценность);

}
ещё
{
УМК.Параметры.AddWithValue ("@ID", textBox1. Text);
УМК.Параметры.AddWithValue ("@Name", textBox2. Text);
УМК.Параметры.AddWithValue ("@Age", textBox3. Text);
УМК.Параметры.AddWithValue ("@Department", textBox4. Text);
УМК.Параметры.AddWithValue ("@Salary", textBox5. Text);
УМК.Параметры.AddWithValue ("@DateOFBirth", textBox6. Text);

}


УМК.Метод executenonquery();
против.Закрывать();
НО ПРОБЛЕМА В ТОМ ЖЕ СТРИЛЛЕ