Я создал таблицу в базе данных, основанной на услугах, для хранения информации о продажах. В таблицу включены столбцы дата, время, имя, покупка, количество, стоимость (в этом конкретном виде). код для вставки в таблицуnull значение исключение при вводе в базу данных
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\rnawa_000\Documents\Visual Studio 2013\Projects\Random\Random\sales.mdf;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "insert into salesTB (Date,Time,Name,Quantity,Cost) values ('"+date.Text+"','"+time.Text+"','"+txtName.Text+"','"+listBox1.Items.Count+"','"+ txtCost.Text+")";
foreach (string item in listBox1.Items)
{
cmd.CommandText = "insert into salesTB (Purchase) values ('" +item.Substring(0,10) + "')";
}
cmd.ExecuteNonQuery();
cmd.Clone();
conn.Close();
В date.text
и time.text
этикетки отображает дату и время respectively.they присваивается значения в случае загрузки формы. в txtName.text
и txtCost.text
метки получают свои значения из предыдущей формы с помощью конструктора, как
public Form2(ListBox.ObjectCollection objectCollection, string name,string total)
{
InitializeComponent();
this.listBox1.Items.AddRange(objectCollection);
txtName.Text = name;
txtCost.Text = total;
}
Когда я выполнения этого, он дает мне ошибку говоря «Не удается вставить значение NULL в столбец" Стоимость». И если я установил разрешить nulls в столбце затрат в базе данных, тогда он показывает любое другое имя столбца в ошибке исключения.
Пользователь может Вводите код с помощью текстовых полей в базе данных. ** Параметры привязки, не объединяйте строку SQL **. Во-вторых, вы, вероятно, попытаетесь вставить строку «NULL» в int/decimal. – lad2025
Первый текст команды никогда не выполняется, команды, созданные во время цикла, никогда не выполняются, кроме последнего, когда вы выходите из цикла. – Steve
Также вы вставляете новую строку каждый раз, когда вы выполняете цикл foreach после начальной вставки, поэтому нет никакой связи между первой вставкой и вторым набором вставок. Лучшим подходом было бы нормализовать ваши данные и вставить все данные с каждым элементом. –