У меня есть соединение с базой данных, где я вставляю данные в таблицу, имеющую 2 столбца, то есть id
, first_name
, last_name
. Ниже приведен код:
private void Insert_Click(object sender, EventArgs e)
{
try
{
String query = "INSERT INTO data_table (first_name,last_name) VALUES (@f_name,@l_name)";
using (SqlConnection connection1 = new SqlConnection(
Properties.Settings.Default.DatabaseConnection))
using (SqlCommand insertCommand = new SqlCommand(query, connection1))
{
//a shorter syntax to adding parameters
// insertCommand.Parameters.Add("@id", SqlDbType.Int).Value = 1;
insertCommand.Parameters.Add("@f_name", SqlDbType.NChar).Value = "JAVED";
insertCommand.Parameters.Add("@l_name", SqlDbType.NChar).Value = "GHAMJN";
//make sure you open and close(after executing) the connection
connection1.Open();
insertCommand.ExecuteNonQuery();
connection1.Close();
MessageBox.Show("Record inserted. Please check your table data. :)");
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
Ниже приведен сценарий T-SQL:
CREATE TABLE [dbo].[data_table] (
[Id] INT NOT NULL IDENTITY,
[first_name] NCHAR (10) NULL,
[last_name] NCHAR (10) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Проблема создается идентификатором: я установил автоинкремент. Когда я нажимаю кнопку вставки, появляется сообщение:
Невозможно вставить значение NULL в столбец Id таблицы C: \ Users ....... \ Database1.MDF.dbo.data_table; столбец не допускает null.
4 ответа
Поле вашего идентификатора должно быть изменено, как показано ниже.
Table_New
после ее удаления дает мне: недопустимый объект Table_New
bin/Debug
вместо базы данных в App_Data
или в корне проекта?
Добавьте в таблицу начальное значение идентификатора и значения приращения ...
CREATE TABLE [dbo].[data_table] (
[Id] INT NOT NULL IDENTITY(1,1),
[first_name] NCHAR (10) NULL,
[last_name] NCHAR (10) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Удаление этой таблицы вместе со всеми старыми копиями старой таблицы и создание новой таблицы с предложенным Identity(1,1)
решило проблему.
IDENTITY
, см. здесь. msdn.microsoft.com/en-us/library/ms186775.aspx Это указывает на то, что с вашим предыдущим объектом таблицы возникла какая-то неизвестная проблема.
Попробуйте это. С помощью этого оператора можно выборочно включить или отключить поведение столбцов идентификаторов.
Если ваш столбец идентификации настроен правильно, это единственное логическое объяснение того, что он ведет себя не так, как ожидалось.
УСТАНОВИТЬ IDENTITY_INSERT [dbo]. [Data_table] ON;
Однако более вероятно, что ваше утверждение о правильности ошибочно и вы неправильно настроили столбец идентификаторов.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
with [Id] INT NOT NULL IDENTITY(1,1)