做个代码收集的小程序。对Access数据库CRUD时,U不正常不太会表达,先看代码吧插入方法 string sql = "Insert Into DataInfo(title,context,typeId,createTime)"+
" Values(@title,@context,@typeId,@createTime)";
OleDbParameter[] ps ={
new OleDbParameter("@title",dataInfo.Title),
//...
};
return DBHelper.ExecuteCommand(sql, ps);
可以正确执行更新方法1 string sql = "Update DataInfo Set title=@title,context=@context,"+
"typeId=@typeId,createTime=@createTime Where id=@id ";
OleDbParameter[] ps ={
new OleDbParameter("@id",dataInfo.Id),
//...
};
return DBHelper.ExecuteCommand(sql, ps);
不能正确执行
更新方法2 string sql = "Update DataInfo Set title='" + dataInfo.Title +
"',context='" + dataInfo.Context + "',typeId=" + dataInfo.TypeId.Id +
",createTime='" + dataInfo.CreateTime + "' Where id=" + dataInfo.Id; return DBHelper.ExecuteCommand(sql, null);
可以正确执行,但是数据中不能包含一些特定的字符,比如英文单引号
比如
...Set title='"123"'... --可以执行更新
...Set title='"123'"'... --不可以执行更新因为插入使用参数方式
所以插入title为123'时可以插入
根据title查询时也可以查出来
Update可以用OleDbParameter方式吗?如果可以怎么才能正确使用?使用拼接sql串时怎么避免下面这种情况出错?
...Set title='"123'"'...
在线等带您的指教
" Values(@title,@context,@typeId,@createTime)";
OleDbParameter[] ps ={
new OleDbParameter("@title",dataInfo.Title),
//...
};
return DBHelper.ExecuteCommand(sql, ps);
可以正确执行更新方法1 string sql = "Update DataInfo Set title=@title,context=@context,"+
"typeId=@typeId,createTime=@createTime Where id=@id ";
OleDbParameter[] ps ={
new OleDbParameter("@id",dataInfo.Id),
//...
};
return DBHelper.ExecuteCommand(sql, ps);
不能正确执行
更新方法2 string sql = "Update DataInfo Set title='" + dataInfo.Title +
"',context='" + dataInfo.Context + "',typeId=" + dataInfo.TypeId.Id +
",createTime='" + dataInfo.CreateTime + "' Where id=" + dataInfo.Id; return DBHelper.ExecuteCommand(sql, null);
可以正确执行,但是数据中不能包含一些特定的字符,比如英文单引号
比如
...Set title='"123"'... --可以执行更新
...Set title='"123'"'... --不可以执行更新因为插入使用参数方式
所以插入title为123'时可以插入
根据title查询时也可以查出来
Update可以用OleDbParameter方式吗?如果可以怎么才能正确使用?使用拼接sql串时怎么避免下面这种情况出错?
...Set title='"123'"'...
在线等带您的指教
就和java中的Result一样?必须按照列顺序读取/更新?
"typeId=@typeId,createTime=@createTime Where id=@id ";
OleDbParameter[] ps ={
new OleDbParameter("@id",dataInfo.Id),//要放在最后?
new OleDbParameter("@title",dataInfo.Title),
new OleDbParameter("@context",dataInfo.Context),
new OleDbParameter("@typeId",dataInfo.TypeId.Id),
new OleDbParameter("@createTime",dataInfo.CreateTime)};
return DBHelper.ExecuteCommand(sql, ps);