Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我陷入了这样一种情况:我正在创建一个表,并且根据该表我想要创建一个过程,但是它';这是一个错误_C#_Sql Server_Database - Fatal编程技术网

C# 我陷入了这样一种情况:我正在创建一个表,并且根据该表我想要创建一个过程,但是它';这是一个错误

C# 我陷入了这样一种情况:我正在创建一个表,并且根据该表我想要创建一个过程,但是它';这是一个错误,c#,sql-server,database,C#,Sql Server,Database,我陷入了这样一种情况,我正在创建一个表,并且根据该表我想要创建一个过程,但是它显示了一个错误 我将提供该错误的快照,并提供表结构和过程结构: 请帮忙。。多谢各位 表: create table Students_Table ( Student_ID bigint not null, Student_Name nvarchar(50) not null, Student_Enrollment_No bigint not null, Student_Library_I

我陷入了这样一种情况,我正在创建一个表,并且根据该表我想要创建一个过程,但是它显示了一个错误

我将提供该错误的快照,并提供表结构和过程结构:

请帮忙。。多谢各位

表:

create table Students_Table
(
    Student_ID bigint not null,
    Student_Name nvarchar(50) not null,
    Student_Enrollment_No bigint not null,
    Student_Library_ID bigint,
    Student_Gender nvarchar(15) not null,
    Student_Phone nvarchar(15) not null,
    Student_Email nvarchar(100) not null,
    Student_Division nvarchar(30) not null,
    Student_Current_Semester nvarchar(20) not null,
    Student_Password nvarchar(80) not null,
    Photo_Name nvarchar(MAX),
    Photo_Size bigint,
    Photo_Binary varbinary(MAX),
    Username nvarchar(20),
    Student_Address nvarchar(100),
    Year nvarchar(10),
    Shift nvarchar(10),
    Roll_Number int,
    Parents_Contact nvarchar(15)
);
存储过程:

create proc Insert_Student
    @Student_Name nvarchar(50),
    @Roll int,
    @Student_Enrollment_No bigint,
    @Student_Library_ID bigint,
    @Student_Gender nvarchar(15),
    @Student_Phone nvarchar(15),
    @Student_Email nvarchar(100),
    @Student_Division nvarchar(30),
    @Student_Current_Semester nvarchar(20),
    @Username nvarchar(20),
    @Student_Address nvarchar(100),
    @Student_Password nvarchar(80),
    @Student_Shift nvarchar(10),
    @Student_Year nvarchar(10),
    @PContacts nvarchar(15),
    @Photo_Name nvarchar(max),
    @Photo_Size int,
    @Photo_Binary varbinary(max),
    @New_ID int output
as
begin
    Insert into Students_Table
    values (@Student_Name, @Student_Enrollment_No, @Student_Library_ID,
            @Student_Gender, @Student_Phone, @Student_Email,
            @Student_Division, @Student_Current_Semester, @Student_Password,
            @Photo_Name, @Photo_Size, @Photo_Binary,
            @Username, @Student_Address, @Student_Year, @Student_Shift,
            @Roll, @PContacts)

    select @New_ID = SCOPE_IDENTITY();
end
这就是我得到的错误:

Msg 213,16级,状态1,程序插入,学生,第23行[批处理起始行80]
提供的值的列名或数目与表定义不匹配


插入查询中的列数与列数不匹配。因此,请指定列名:

Insert into Students_Table (Student_Name ,Student_Enrollment_No,Student_Library_ID,...)
Values (@Student_Name,@Student_Enrollment_No, @Student_Library_ID, ... )

如果不想指定列名,则应将学生ID指定为自动递增标识。

我认为错误是由于要插入的值不同所致。您的表需要19个字段,您提供了18个字段。您需要更改Id以使其自动递增,或者在insert语句中提供Id。

提供的值的数量与表定义不匹配
-这是一个很大的线索。可能的重复错误太多,无法仅提供答案。这是一个输出参数如果是这样,您应该更改Id的列定义,使其自动递增。否则,insert语句将要求Id的值。我完成了,它成功执行,但在我的站点中,它仍然显示错误,请访问:并尝试注册演示帐户,并在填充所有字段后单击finish时查看错误此错误:提供的列名或值数与表定义不匹配。