2012-09-14 15 views
-1

我有一张2桌.UniversityReg &登录。当大学注册系统时,一般的细节去大学注册表&登录细节去登录表。使用范围标识它取最后一个id.BUT上面提到的错误显示。列名或提供的值的数量不匹配表定义

UniversityReg表

[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 

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

回答

1

你必须使用代码:

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

UniversityReg有7列,但在你插入你有5列。

2

您的插入到UniversityReg的值太少。

N.B.该插入类型被认为是不好的做法 - 考虑指定要插入的列,例如

相反的:

insert into table values(x,y,z) 

务必:

insert into table (col1,col2,col3) values(x,y,z) 
-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(); 

    } 
    } 
相关问题