使用参数化查询 sql parameter
insert 时,我的一个DateTime类型的字段想传入一个null值,但会报错“参数化查询 需要参数 但未提供该参数”
高手帮忙~~
insert 时,我的一个DateTime类型的字段想传入一个null值,但会报错“参数化查询 需要参数 但未提供该参数”
高手帮忙~~
解决方案 »
- 49-4-6 如何去除中间的-4或49-或-6
- mvc 将View页面中的值传到Controller中
- .net页面怎么让它生成静态页面
- 怎么换VS2008开发环境
- 关于static和继承的问题
- 该去面试还是继续学习,并散分
- 做过邮件系统的进来
- 急需用ajaxpro将返回的dataset绑定到table的例子。
- 动态改变datagrid的页眉值的问题
- 为什么我把web程序拷到别的机器上,浏览页面时,有的控件就看不到呢.
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许
- description为什么加上双引号就不行了
{
int index = 0;
string strSQL = null; if (taskManage.ID == 0)
{
strSQL = "INSERT INTO TaskManage(ID,Name,Project,Block,Type,Description,Res,PersonInCharge,RegisterPerson,State,PlanToFinish,IsMailRemind,IsPublic,IsUndetermined,FinishTime,FinishReport) ";
strSQL += "VALUES(@ID,@Name,@Project,@Block,@Type,@Description,@Res,@PersonInCharge,@RegisterPerson,@State,@PlanToFinish,@IsMailRemind,@IsPublic,@IsUndetermined,@FinishTime,@FinishReport)";
taskManage.ID = DBHelper.GetMaxID("TaskManage");
}
else
{
strSQL = "UPDATE Student SET ID = @ID,Name = @Name,Project = @Project,Block = @Block,Type = @Type,Description = @Description,Res = @Res,PersonInCharge = @PersonInCharge,RegisterPerson = @RegisterPerson,State = @State,PlanToFinish = @PlanToFinish,IsMailRemind = @IsMailRemind,IsPublic = @IsPublic,IsUndetermined = @IsUndetermined,FinishTime = @FinishTime,FinishReport = @FinishReport WHERE ID=@ID;";
} SqlParameter[] sqlParameter = GetParameters();
sqlParameter[index++].Value = taskManage.ID;
sqlParameter[index++].Value = taskManage.Name;
sqlParameter[index++].Value = taskManage.Project;
sqlParameter[index++].Value = taskManage.Block;
sqlParameter[index++].Value = taskManage.Type;
sqlParameter[index++].Value = taskManage.Description;
sqlParameter[index++].Value = taskManage.Res;
sqlParameter[index++].Value = taskManage.PersonInCharge;
sqlParameter[index++].Value = taskManage.RegisterPerson;
sqlParameter[index++].Value = taskManage.State;
sqlParameter[index++].Value = taskManage.PlanToFinish;
sqlParameter[index++].Value = taskManage.IsMailRemind;
sqlParameter[index++].Value = taskManage.IsPublic;
sqlParameter[index++].Value = taskManage.IsUndetermined;
sqlParameter[index++].Value = taskManage.FinishTime;
sqlParameter[index++].Value = taskManage.FinishReport; try
{
DBHelper.ExecuteNonQuery(strSQL, sqlParameter);
}
catch(Exception ex)
{
throw (ex);
}
return taskManage.ID.Value; }//-----------------------------------------------------------------------------------
/// <summary>
/// 初始化参数
/// </summary>
/// <returns></returns>
private SqlParameter[] GetParameters()
{
SqlParameter[] parms; parms = new SqlParameter[] {
new SqlParameter("@ID",SqlDbType.Int),
new SqlParameter("@Name",SqlDbType.NVarChar,50),
new SqlParameter("@Project",SqlDbType.NVarChar,50),
new SqlParameter("@Block",SqlDbType.NVarChar,50),
new SqlParameter("@Type",SqlDbType.NVarChar,50),
new SqlParameter("@Description",SqlDbType.NVarChar,500),
new SqlParameter("@Res",SqlDbType.NVarChar,500),
new SqlParameter("@PersonInCharge",SqlDbType.NVarChar,50),
new SqlParameter("@RegisterPerson",SqlDbType.NVarChar,50),
new SqlParameter("@State",SqlDbType.Int),
new SqlParameter("@PlanToFinish",SqlDbType.DateTime,8,""),
new SqlParameter("@IsMailRemind",SqlDbType.Int),
new SqlParameter("@IsPublic",SqlDbType.Int),
new SqlParameter("@IsUndetermined",SqlDbType.Int),
new SqlParameter("@FinishTime",SqlDbType.DateTime),
new SqlParameter("@FinishReport",SqlDbType.NVarChar,500),
};
return parms;
}//-------------------------------------------------------------------------------
protected void btnSave_Click(object sender, EventArgs e)
{
TaskManageBO taskManageBO = new TaskManageBO();
try
{
int isSuccess = taskManageBO.Save(SetInfo());
if (isSuccess == 1)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "OK", "<script>alert('保存成功!')</script>");
}
}
catch(Exception ex)
{
string str = ex.Message.Replace("'", "\\'");
Page.ClientScript.RegisterStartupScript(this.GetType(), "OK", "<script>alert('" + str + "');</script>");
}
}
//---------------封装实体------------------
private TaskManageInfo SetInfo()
{
DateTime? nullDateTime = null;
TaskManageInfo info = new TaskManageInfo();
info.ID = int.Parse(hidID.Value);
info.Name = this.txtName.Text;//任务名称
info.Project = this.txtProject.Text;//所属项目
info.Block = this.txtBlock.Text;//所属模块
info.Type = this.txtType.Text;//任务类型
info.Description = this.txtDescription.Text;//任务描述
info.PlanToFinish = txtPlanToFinish.Text == "" ? nullDateTime : DateTime.Parse(txtPlanToFinish.Text); //计划完成时间
info.PersonInCharge = txtPersonInCharge.Text; //责任人
info.Res = txtRes.Text; //备注
info.IsMailRemind = this.chbMail.Checked == true ? 1 : 0; //是否邮件提醒
info.IsPublic = this.chbIsPublic.Checked == true ? 1 : 0; //是否公开任务
info.IsUndetermined = null;//计划完成时间(是否待写) 暂时不用此功能
info.State = 0;//任务状态,默认为“处理中”
info.RegisterPerson = this.userName; //登记人
info.FinishReport = "";//结束报告,任务结束时赋值,这里先赋空值
info.FinishTime = null;//结束时间
return info;
}
parameters[1].Value = model.A?? DBNull.Value;