簡體   English   中英

如何在C#Visual Studio中自動填充字段?

[英]How to make a field auto populate in C# Visual Studio?

Connection.Open();
    SqlCommand Command = new SqlCommand(null, Connection);
    Command.CommandText = "Insert into [EmployeeTable] (Forename,Surname,DateofBirth,Email address,Country,Address,City,Postcode,Skill1,Skill2,Skill3,Job1,Job 2,Job3,EmployeeAvailability) Values(@forename, @surname, @dateofbirth, @emailaddress, @phonenumber, @country, @address, @city, @postcode, @skill1, @skill2, @skill3, @job1, @job2, @job3, @employeeavailability)";
    Command.Parameters.AddWithValue("@forename", ForenameInputBox.Text);
    Command.Parameters.AddWithValue("@surname", SurnameInputBox.Text);
    Command.Parameters.AddWithValue("@dateofbirth", DoBInputBox.Text);
    Command.Parameters.AddWithValue("@emailaddress", EmailInputBox.Text);
    Command.Parameters.AddWithValue("@country", CountryInputBox.Text);
    Command.Parameters.AddWithValue("@address", AddressInputBox.Text);
    Command.Parameters.AddWithValue("@city", CityInputBox.Text);
    Command.Parameters.AddWithValue("@postcode", PostcodeInputBox.Text);
    Command.Parameters.AddWithValue("@skill1", Skill1InputBox.Text);
    Command.Parameters.AddWithValue("@skill2", Skill2InputBox.Text);
    Command.Parameters.AddWithValue("@skill3", Skill3InputBox.Text);
    Command.Parameters.AddWithValue("@job1", Job1InputBox.Text);
    Command.Parameters.AddWithValue("@job2", Job2InputBox.Text);
    Command.Parameters.AddWithValue("@job3", Job3InputBox.Text);
    Command.Parameters.AddWithValue("@employeeavailability", EmployeeAvailablityBox.Text);
    Command.ExecuteNonQuery();
    Connection.Close();
}

}

CREATE TABLE [dbo].[EmployeeTable] (
[EmployeeID]            INT           NOT NULL,
[Forename]              NVARCHAR (50) NOT NULL,
[Surname]               NVARCHAR (50) NOT NULL,
[DateofBirth]         DATETIME      NOT NULL,
[Emailaddress]         NVARCHAR (50) NOT NULL,
[Country]               NVARCHAR (50) NOT NULL,
[Address]               NVARCHAR (50) NOT NULL,
[City]                  NVARCHAR (50) NOT NULL,
[Postcode]              NVARCHAR (50) NOT NULL,
[Skill1 ]              NVARCHAR (50) NOT NULL,
[Skill2]               NVARCHAR (50) NOT NULL,
[Skill3]               NVARCHAR (50) NOT NULL,
[Job1]                BIT           NOT NULL,
[Job2]                BIT           NOT NULL,
[Job3]                 BIT           NOT NULL,
[EmployeeAvailability] BIT           NOT NULL,
PRIMARY KEY CLUSTERED ([EmployeeID] ASC)

);

我創建了一個表來存儲有關員工的詳細信息,但是在嘗試保存輸入時會出現錯誤消息。 錯誤消息如下:

System.Data.dll中發生了類型為'System.Data.SqlClient.SqlException'的未處理異常。其他信息:無法將值NULL插入表'C:\\ USERS \\ USER \\ DOCUMENTS \\ VISUAL STUDIO 2015 \\的列'EmployeeID'中項目\\ WPFAPPLICATION \\ WPFAPPLICATION1 \\ EMPLOYEEDB.MDF. dbo.EmployeeTable'; 列不允許為空。 INSERT失敗。 該語句已終止

我認為這是因為沒有將任何值輸入到EmployeeID字段中,因此,如果這是導致錯誤消息的原因,那么我該如何使其每次生成一個新的員工ID並填充該字段呢?

標准方法是使該列成為IDENTITY列:

[EmployeeID]   INT   IDENTITY(1,1),

然后,數據庫將在每次插入時自動生成一個數字。 這具有保證唯一性的額外好處,這很重要,因為此列也用作您的主鍵。 而且由於IDENTITY始終是一個遞增的值,因此,作為CLUSTERED索引也可以很好地解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM