2011-05-24 62 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。

任何想法出了什么问题?

在此先感谢。

沙迪亚纳拉亚南

回答