asp.net/c#下用参数化SQL访问时间字段
Access下的SQL语句跟Sql Server下有所不同,我在将Sql Server数据库改为Access数据库的时候,遇到些小小的挫折,稍作总结,以备参考。
假设有表Article, Article有字段EditTime,类型为“日期/时间”型,以修改EditTime为例。
void Update(int nArticleID, string strTitle, DateTime timeEdit)
{
StringBuilder strSQL = new StringBuilder();
strSQL.Append("Update article set Title=@strTitle, EditTime=@timeEdit where ArticleID=@nArticleID;");
OleDbParameter []arParas = new OleDbParameter[3];
arParas[0] = new OleDbParameter("@strTitle", strTitle);
arParas[1] = new OleDbParameter("@timeEdit", OleDbType.Date);
arParas[1].Value = timeEdit;
arParas[2] = new OleDbParameter("@nArticleID", nArticleID);
AccessHelper.ExecuteSql(strSQL.ToString(), arParas);
}
{
StringBuilder strSQL = new StringBuilder();
strSQL.Append("Update article set Title=@strTitle, EditTime=@timeEdit where ArticleID=@nArticleID;");
OleDbParameter []arParas = new OleDbParameter[3];
arParas[0] = new OleDbParameter("@strTitle", strTitle);
arParas[1] = new OleDbParameter("@timeEdit", OleDbType.Date);
arParas[1].Value = timeEdit;
arParas[2] = new OleDbParameter("@nArticleID", nArticleID);
AccessHelper.ExecuteSql(strSQL.ToString(), arParas);
}
其中,关键的一条是一定要设置OleDbParameter为OleDbType.Date类型。