Access问题 --------------------盯了很久没看出问题
public void article_edit(int aid, string atitle, int aclass, string acontent, string atabs, int adot)
{
string connstring = ConfigurationManager.AppSettings["OleDB"].ToString() + Request.PhysicalApplicationPath + ConfigurationManager.AppSettings["DBName"].ToString();
OleDbConnection conn = new OleDbConnection(connstring);
string strSQL = "update Article set title='" + atitle + "' , [class]='" + aclass + "' , [content]='" + acontent + "' , tabs='" + atabs + "' , dot='"+dot+"' where id='" + aid + "' ";
OleDbCommand cmd = new OleDbCommand(strSQL, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
article_edit(Convert.ToInt32(Request["id"]), title.Text.Trim(), Convert.ToInt32(dropdown.Value), content.Value, tabs.Text.Trim(), Convert.ToInt32(dot.Text.Trim()));
}
错误提示:
System.Data.OleDb.OleDbException (0x80040E07): 标准表达式中数据类型不匹配。 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 manager_article_list.article_edit(Int32 aid, String atitle, Int32 aclass, String acontent, String atabs, Int32 adot) 位置 d:\用户目录\Documents\Visual Studio 2010\WebSites\blog\manager\article\list.aspx.cs:行号 60 在 manager_article_list.Button1_Click(Object sender, EventArgs e) 位置 d:\用户目录\Documents\Visual Studio 2010\WebSites\blog\manager\article\list.aspx.cs:行号 67
------最佳解决方案--------------------有些值不是文本型的不要加单引号。
string strSQL = "update Article set title='" + atitle + "' , [class]=" + aclass + " , [content]=。。。。。。后面我不写了。
class这个字段不是文本型的就不要加单引号,如我上面所写。
------其他解决方案--------------------