-1

我有 2 个表。UniversityReg 和登录。当大学注册到系统时,一般详细信息转到 UniversityReg 表,登录详细信息转到登录表。使用范围标识它需要最后一个 id。但是上面提到的错误显示。

大学注册表

[UniversityId] [int] IDENTITY(1,1) NOT NULL,
[Username] [varchar](50) NULL,
[Password] [varchar](50) NULL,
[UniversityName] [varchar](50) NULL,
[GovernmentRegNo] [varchar](50) NULL,
[Country] [varchar](50) NULL,
[CreatedBy] [varchar](50) NULL,
[ShortCode] [varchar](50) NULL,

登录表

[LoginID] [int] NOT NULL,
[UserName] [nvarchar](50) NOT NULL,
[Password] [nvarchar](50) NOT NULL,
[ShortCode] [nvarchar](50) NULL

SupporterReg 表

[SupporterId] [int] NOT NULL,
[SupporterName] [varchar](50) NULL,
[University] [varchar](50) NULL,
[ContactNo] [varchar](50) NULL,
[Email] [varchar](50) NULL,
[StudentLocation] [varchar](50) NULL,
[ImagePath] [varchar](50) NULL,
[ShortCode] [varchar](50) NULL,

要插入数据,我使用以下存储过程,

 CREATE PROCEDURE [dbo].[UniversityReg_SP]
    (
@Username varchar(50),
@Password varchar(50),
@UniversityName varchar(50) ,
@GovernmentRegNo varchar(50) ,
@Country varchar(50) ,
@CreatedBy varchar(50)

    )
AS
DECLARE @LoginID int
INSERT INTO UniversityReg   values(@UniversityName,@GovernmentRegNo,@Country,@CreatedBy,'UNI')

SET @LoginID = SCOPE_IDENTITY();

INSERT INTO Login values(@LoginID,@Username,@Password,'UNI')

RETURN

错误是什么?我看不到任何表格错误...

4

3 回答 3

2

您插入 UniversityReg 的值太少。

注意这种类型的插入被认为是不好的做法 - 考虑指定您要插入的列,例如

代替:

insert into table values(x,y,z)

做:

insert into table (col1,col2,col3) values(x,y,z)
于 2012-09-14T16:49:51.913 回答
1

您必须使用代码:

INSERT INTO UniversityReg(UniversityName,GovernmentRegNo,Country,CreatedBy,ShortCode)
values(@UniversityName,@GovernmentRegNo,@Country,@CreatedBy,'UNI')

UniversityReg有 7 列,但在您的插入中有 5 列。

于 2012-09-14T16:50:19.693 回答
-1
    private void btninsert_Click(object sender, EventArgs e)
    {
        try
        {
            con.Open();
            cmd = new SqlCommand("insert into Empinfo values ('" + textBox1.Text + "''" + textBox2.Text + "''" + textBox3.Text + "''" + textBox4.Text + "')", con);

            cmd.ExecuteNonQuery();
            MessageBox.Show("Insert the record");
            cmd.Dispose();
        }
        catch(Exception e1)
            {
                MessageBox.Show("e1");
            }
            finally
        {

        con.Close();

    }
    }
于 2013-11-13T19:09:55.987 回答