不显示删除回复显示所有回复显示星级回复显示得分回复 列不允许有空值。INSERT 失败的问题
建立了一个存储过程:ALTER PROCEDURE [dbo].employeeInsert
@em_id int OUTPUT,
@name varchar(50),
@u_id int,
@dep_id int,
@gend int,
@birth datetime,
@mar int,
@native varchar(50),
@na_id int,
@hukou varchar(50),
@v_id int,
@idcard varchar(50),
@health varchar(50),
@phone varchar(50),
@mob varchar(50),
@mail varchar(50),
@school varchar(50),
@spec varchar(50),
@learn varchar(50),
@degree varchar(50),
@language varchar(50),
@lanlevel varchar(50),
@com varchar(50),
@comgood varchar(50),
@address varchar(50),
@em_add varchar(50),
@workdate datetime,
@regtime datetime,
@regper varchar(50),
@photo varchar(50)
AS
SET NOCOUNT ON
insert into employee
(
[em_id],
[name],
[u_id],
[dep_id],
[gend],
[birth],
[mar],
[native],
[na_id],
[hukou],
[v_id],
[idcard],
[health],
[phone],
[mob],
[mail],
[school],
[spec],
[learn],
[degree],
[language],
[lanlevel],
[com],
[comgood],
[address],
[em_add],
[workdate],
[regtime],
[regper],
[photo]
)
values
(
@em_id,
@name,
@u_id,
@dep_id,
@gend,
@birth,
@mar,
@native,
@na_id,
@hukou,
@v_id,
@idcard,
@health,
@phone,
@mob,
@mail,
@school,
@spec,
@learn,
@degree,
@language,
@lanlevel,
@com,
@comgood,
@address,
@em_add,
@workdate,
@regtime,
@regper,
@photo
)set @em_id=scope_identity()
return @@error
表enployee的主键是em_id ,标识设置为否
用 retval = cmd.ExecuteNonQuery();操作数据库
检查了下cmd属性,connection, (commandType, commandText都正常,commandParameters中各个item都有值
但是执行的时候,报错:不能将值 NULL 插入列 'em_id',表 'OA_DB.dbo.employee';列不允许有空值。INSERT 失败。
语句已终止。
cmd.parameters里面@em_id是有值的,
请问怎么回事啊。
上程序:
public int Insert(employee employee)
{
string sqlCommand = "employeeInsert";
int res;
SqlParameter[] param ={
new SqlParameter("@em_id",SqlDbType.Int),
new SqlParameter("@name",SqlDbType.VarChar),
new SqlParameter("@u_id", SqlDbType.Int),
new SqlParameter("@dep_id",SqlDbType.Int),
new SqlParameter("@gend",SqlDbType.Int),
new SqlParameter("@birth",SqlDbType.DateTime),
new SqlParameter("@mar",SqlDbType.Int),
new SqlParameter("@native",SqlDbType.VarChar),
new SqlParameter("@na_id",SqlDbType.Int),
new SqlParameter("@hukou",SqlDbType.VarChar),
new SqlParameter("@v_id",SqlDbType.Int),
new SqlParameter("@idcard",SqlDbType.VarChar),
new SqlParameter("@health",SqlDbType.VarChar),
new SqlParameter("@phone",SqlDbType.VarChar),
new SqlParameter("@mob",SqlDbType.VarChar),
new SqlParameter("@mail",SqlDbType.VarChar),
new SqlParameter("@school",SqlDbType.VarChar),
new SqlParameter("@spec",SqlDbType.VarChar),
new SqlParameter("@learn",SqlDbType.VarChar),
new SqlParameter("@degree",SqlDbType.VarChar),
new SqlParameter("@language",SqlDbType.VarChar),
new SqlParameter("@lanlevel",SqlDbType.VarChar),
new SqlParameter("@com",SqlDbType.VarChar),
new SqlParameter("@comgood",SqlDbType.VarChar),
new SqlParameter("@address",SqlDbType.VarChar),
new SqlParameter("@em_add",SqlDbType.VarChar),
new SqlParameter("@workdate",SqlDbType.DateTime),
new SqlParameter("@regtime",SqlDbType.DateTime),
new SqlParameter("@regper",SqlDbType.VarChar),
new SqlParameter("@photo",SqlDbType.VarChar)
};
param[0].Direction = ParameterDirection.Output;
param[0].Value = employee.em_id;
param[1].Value = employee.name;
param[2].Value = employee.u_id;
param[3].Value = employee.dep_id;
param[4].Value = employee.gend;
param[5].Value = employee.birth;
param[6].Value = employee.mar;
param[7].Value = employee.native;
param[8].Value = employee.na_id; ;
param[9].Value = employee.hukou;
param[10].Value = employee.v_id;
param[11].Value = employee.idcard;
param[12].Value = employee.health;
param[13].Value = employee.phone; ;
param[14].Value = employee.mob;
param[15].Value = employee.mail;
param[16].Value = employee.school;
param[17].Value = employee.spec;
param[18].Value = employee.learn;
param[19].Value = employee.degree;
param[20].Value = employee.language;
param[21].Value = employee.lanlevel;
param[22].Value = employee.com;
param[23].Value = employee.comgood;
param[24].Value = employee.address;
param[25].Value = employee.em_add;
param[26].Value = employee.workdate;
param[27].Value = employee.regtime;
param[28].Value = employee.regper;
param[29].Value = employee.photo;
res = SqlHelper.ExecuteNonQuery(Conn.SqlConn, CommandType.StoredProcedure, sqlCommand, param);
return res;
}
public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
//create a command and prepare it for execution
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);
//finally, execute the command.
int retval;
try
{
retval = cmd.ExecuteNonQuery();
}
catch
{
throw;
}
// detach the SqlParameters from the command object, so they can be used again.
cmd.Parameters.Clear();
return retval;
}