【发布时间】:2018-11-24 21:48:14
【问题描述】:
我目前正在学习使用数据库和 SQL。我收到一个似乎无法解决的错误。标题中说明了我遇到的错误。
这是我的表定义:
CREATE TABLE [dbo].[Filmstbl]
(
[Id] INT NOT NULL IDENTITY,
[FilmTitel] NVARCHAR (50) NULL,
[Duratie] NVARCHAR (50) NULL,
[Genre] NVARCHAR (50) NULL,
[Director] NVARCHAR (50) NULL,
[Acteur] NVARCHAR (50) NULL,
[JaarVanUitgave] NVARCHAR (50) NULL,
[Omschrijving] NVARCHAR (MAX) NULL,
[GastID] INT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
我使用的查询如下所示:
public void AddFilms(string titel, string lengte, string genre, string director, string acteur, string jaaruitgave, string omschrijving, int PersoonID)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
connection.Open();
string query = "INSERT INTO Filmstbl Values (@FilmTitel, @Duratie, @Genre, @Director, @Acteur, @JaarVanUitgave, @Omschrijving, @GastID)";
using (SqlCommand addfilms = new SqlCommand(query, connection))
{
addfilms.Parameters.AddWithValue("@FilmTitel", titel);
addfilms.Parameters.AddWithValue("@Duratie", lengte);
addfilms.Parameters.AddWithValue("@Genre", genre);
addfilms.Parameters.AddWithValue("@Director", director);
addfilms.Parameters.AddWithValue("@Acteur", acteur);
addfilms.Parameters.AddWithValue("@JaarVanUitgave", jaaruitgave);
addfilms.Parameters.AddWithValue("@Omschrijving", omschrijving);
addfilms.Parameters.AddWithValue("@GastID", PersoonID);
addfilms.ExecuteNonQuery();
}
}
}
数据类型几乎总是一个随机字符串,除了最后一个参数是一个随机整数。
private void FilmToevoegenBtn_Click(object sender, EventArgs e)
{
sql.AddFilms(FilmTitelTBox.Text, FilmLengteTBox.Text, FilmGenreTBox.Text, FilmDirectorTBox.Text, FilmActeurTBox.Text, FilmJaarUitgaveTBox.Text, FilmOmschrijvingTBox.Text, gebruiker.GebruikerID);
UpdateListBoxes();
}
我以同样的方式将数据添加到另一个表中没有问题,所以我想知道为什么它不适用于这个表。我希望有人知道答案。谢谢。
【问题讨论】:
-
请粘贴异常跟踪
-
@henocsalinas 我现在不知道那是什么,如果你的意思是我在运行时遇到的错误,它只是与我的问题标题相同。
-
我现在尝试在 VALUES 之前声明它们,但又出现了一个错误。 'System.Data.SqlClient.SqlException: '无法将值 NULL 插入到列 'Id' 中,表 'C:\USERS\ALI\SOURCE\REPOS\KILLERAPP\KILLERAPP\DATABASE1.MDF.dbo.Filmstbl';列不允许空值。插入失败。该语句已终止。'' Id 已将身份规范设置为 true。这不应该自己添加吗?
-
这是明确列出列的好处。它为您提供更好的错误消息。
标签: c# sql-server