2011-05-24 71 views
1

我用SqlServer的2008年這裏是DB模式:(請注意,這只是測試亞音速)無法插入使用記錄(SqlServer的)亞音速2.2

Create Table Dept 
(
DeptID int not null Identity(1,1) primary key, 
DeptName varchar(20), 
Location varchar(30) 
) 

GO 

Create Table tUsers 
(
UserID int not null identity(1,1) primary key, 
UserName varchar(50) 
) 
GO 

create table Emp 
(
EmpID int not null identity(1,1) primary key, 
DeptID int foreign key references dept(deptid), 
CreatedBy varchar(50), 
EmpName varchar(50) 
) 

下面是C#代碼保存員工:

Emp em = new Emp();    
em.DeptID = 3; 
em.CreatedBy = "Temp1"; 
em.EmpName = "Temp3";    
em.Save(); 

這裏是SQL事件探查器跟蹤:

exec sp_executesql N'/* GetInsertSql(Emp) */ INSERT INTO [dbo].[Emp]([DeptID],[CreatedBy],[EmpName]) VALUES(@DeptID,@CreatedBy,@EmpName);SELECT SCOPE_IDENTITY() AS newID;',N'@DeptID int,@CreatedBy varchar(8000),@EmpName varchar(5)',@DeptID=3,@CreatedBy='',@EmpName='Temp3' 

可以看出,CreatedBy永遠是空的,即使你gh值是從應用程序傳遞的。 (此前,此列是外鍵,但SubSonic總是拋出(Format)錯誤,因此我根據SubSonic論壇的建議將其更改爲varchar。

任何想法出了什麼問題?

在此先感謝。

沙迪亞納拉亞南

回答