日期:2014-05-17  浏览次数:20377 次

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这个字段不是文本型的就不要加单引号,如我上面所写。
------其他解决方案--------------------
引用:
有些值不是文本型的不要加单引号。
string strSQL = "update Article set title='" + atitle + "' , [class]=" + aclass + " , [content]=。。。。。。后面我不写了。