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类型。