读书人

用Access做数据库有关问题这么多请哪

发布时间: 2011-12-24 23:03:24 作者: rapoo

用Access做数据库问题这么多,请哪位大哥帮我看一下!
private void SetInsertCommand(OleDbCommand insert,TaskInfo task)
{

string cmd = "insert into tasks "
+ "(taskNo,contractNo,taskName,taskDescription,planCompleteDate,completeDate, "
+ "planHours,hours,updateDate,updateUser,remark,charge) "
+ "values "
+ "(@taskNo,@contractNo,@taskName,@taskDescription,@planCompleteDate,@completeDate, "
+ "@planHours,@hours,@updateDate,@updateUser,@remark,@charge) ";

insert.CommandText = cmd;
insert.Connection = conn;

OleDbParameterCollection OleDbParams = insert.Parameters;

/*1*/OleDbParams.Add(new OleDbParameter(TASKNO_PARM,OleDbType.VarChar));
/*2*/OleDbParams.Add(new OleDbParameter(CONTRACTNO_PARM,OleDbType.VarChar));
/*3*/OleDbParams.Add(new OleDbParameter(TASKNAME_PARM,OleDbType.VarChar));
/*4*/OleDbParams.Add(new OleDbParameter(TASKDESCRIPTION_PARM,OleDbType.VarChar));
/*5*/OleDbParams.Add(new OleDbParameter(PLANCOMPLETEDATE_PARM,OleDbType.Date));
OleDbParams.Add(new OleDbParameter(COMPLETEDATE_PARM,OleDbType.Date));
OleDbParams.Add(new OleDbParameter(PLANHOURS_PARM,OleDbType.Integer));
OleDbParams.Add(new OleDbParameter(HOURS_PARM,OleDbType.Integer));
OleDbParams.Add(new OleDbParameter(REMARK_PARM,OleDbType.VarChar));
OleDbParams.Add(new OleDbParameter(UPDATEDATE_PARM,OleDbType.Date));
OleDbParams.Add(new OleDbParameter(UPDATEUSER_PARM,OleDbType.VarChar));
OleDbParams.Add(new OleDbParameter(CHARGE_PARM,OleDbType.VarChar));

//
// Define the parameter mappings from the data table in the
// dataset.
//

OleDbParams[TASKNO_PARM].Value = task.getTaskNo();
OleDbParams[CONTRACTNO_PARM].Value = task.getContractNo();
OleDbParams[TASKNAME_PARM].Value = task.getTaskName();
OleDbParams[TASKDESCRIPTION_PARM].Value = task.getTaskDescription();
OleDbParams[PLANCOMPLETEDATE_PARM].Value = task.getPlanCompleteDate();
OleDbParams[COMPLETEDATE_PARM].Value = task.getCompleteDate();
OleDbParams[PLANHOURS_PARM].Value = task.getPlanHours();
OleDbParams[HOURS_PARM].Value = task.getHours();
OleDbParams[REMARK_PARM].Value = task.getRemark();
OleDbParams[UPDATEDATE_PARM].Value = task.getUpdateDate();
OleDbParams[UPDATEUSER_PARM].Value = task.getUpdateUser();
OleDbParams[CHARGE_PARM].Value = task.getCharge();
}
执行sql语句的时候,总是catch到一个异常!

标准表达式中数据类型不匹配

我检查了Access中的数据库,是3个日期时间类型,2个数字类型,其余的全是文本!没有错误啊!我郁闷了,哪里有错误啊?麻烦那位大哥告诉下!我一定高分相谢!!

[解决办法]


重点看看有没有可能TaskInfo中的方法返回null的情况
另外:Access里面的日期格式要与DateTime格式化后的日期格式一致
[解决办法]
循序要和sql一样

读书人网 >C#

热点推荐