我用dreamweaver MX2004下用VB.Net和asp.net编写一个页面的时候,想更新数据库(access 2003)
以前用这种方法能行,但不知道为什么今天就说我update语句有错,敢问各位大虾指教!
代码如下 :
sub Sure_Click(sender as Object,e as EventArgs)
dim MyCon as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("database/xj.mdb"))
dim sqlUpdate as string
sqlUpdate ="update Teachers set Teacher_Name='"& Tea_Name.text.trim &"',Title='"& Tea_Title.text.trim &"',Work_Years='"& Tea_WYears.text.trim &"',InDate='"& Tea_InDate.text.trim &"',Department_Name='"& Tea_Dep.text.trim &"',Faculty_Name='"& Tea_Fac.text.trim &"',Workplace_Phone='"& Tea_WPhone.text.trim &"',Memo='"& Tea_Memo.text.trim &"' where Teacher_ID='"& Tea_ID.text &"'"
dim MyCom as new OleDbCommand(sqlUpdate,MyCon)
try
MyCon.open()
MyCom.ExecuteNonQuery()
MyCon.close()
Catch er As System.Data.OleDb.OleDbException
response.Write(er)
end try
end sub

解决方案 »

  1.   

    在dreamweaver MX2004里怎么设断点阿?
      

  2.   

    通过消息的方式把sql语句报出来看看。response.Write(sqlupdate)
      

  3.   

    这是更新语句:
    update Teachers set Teacher_Name='彭四伟',Title='教授',Work_Years='6',InDate='2001-1-1',Department_Name='信息科学与技术',Faculty_Name='计算机科学与技术',Workplace_Phone='64444968',Memo='sdgf方' where Teacher_ID='009'以下是系统提示的出错信息:
    '009'System.Data.OleDb.OleDbException: UPDATE 语句的语法错误。 at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at ASP.Chg_Teacher_aspx.Sure_Click(Object sender, EventArgs e) in D:\ALL_PROJECTS\网页\电子商务\学籍管理系统\Chg_Teacher.aspx:line 41 
       
      

  4.   

    Work_Years='6' Work_Years 在数据库里是什么类型?先用查询分析器,看看你这个SQL文有没有问题。
      

  5.   

    都是文本 用的是access 2003 数据库
      

  6.   

    System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at 
    再确认数据类型……
      

  7.   

    Teacher_ID='009'
    Teacher_ID也是用的文本?可能是数字吧
      

  8.   

    我确认都是文本的,艾,没办法,只好先删除再插入新的拉,郁闷ing,一个月前用的同样的代码都还可以呢 ........
      

  9.   

    你再acess里执行一下s你的ql试试,
      

  10.   

    先在access中 新建一个查询 把sql语句复制进去 运行看看 执行是否正确
      

  11.   

    要不是你的表里的字段类型和读出的类型不一致。(看看你的表里,是不是疏忽了类型?)你再把SQL语句字符串里 所有字段名都加上[]
    比如 password 换成[password],看看。