错误“列名称或提供的值的数量与表定义不匹配”

时间:2018-06-15 04:05:45

标签: c# sql-server

我目前正在学习使用数据库和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();
        }
    }
}

数据类型几乎总是一个随机字符串,除了最后一个随机int参数。

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();
}

我正在以相同的方式将数据添加到另一个表而没有问题,所以我想知道为什么它不适用于这个。我希望有人知道答案。谢谢。

1 个答案:

答案 0 :(得分:1)

请重新检查表ID字段。它应自动增加1.例如:

[Id] [int] IDENTITY(1,1)