使用如下代码更新数据库:
private void btnsubmit_click(object sender, System.EventArgs e)
{
uid=Convert.ToInt32(Session["uid"].ToString());
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../")+"data/users.mdb";
strSQL="UPDATE information set marriage='"+rdomarriage.SelectedItem.Text;
strSQL+="',set nation='"+dronation.SelectedItem.Text;
strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";
strSQL+="',set academic='"+droacademic.SelectedItem.Text;
strSQL+="',set job='"+drojob.SelectedItem.Text;
strSQL+="',set income='"+droincome.SelectedItem.Text;
strSQL+="',set area='"+txtarea.Text;
strSQL+="',set question='"+txtquestion.Text;
strSQL+="',set answer='"+txtanswer.Text;
strSQL+="',set star='"+drostar.SelectedItem.Text;
strSQL+="',set weight='"+txtweight.Text;
strSQL+="',set qq='"+txtqq.Text;
strSQL+="',set msn='"+txtmsn.Text;
strSQL+="',set school='"+txtschool.Text;
strSQL+="',set tel='"+txttel.Text;
strSQL+="',set mobile='"+txtmobile.Text;
strSQL+="',set page=''"+txtpage.Text;
strSQL+="',set sport='"+txtsport.Text;
strSQL+="',set movie='"+txtmovie.Text;
strSQL+="',set music='"+txtmusic.Text;
strSQL+="',set food='"+txtfood.Text;
strSQL+="',set book='"+txtbook.Text;
strSQL+="',set idol='"+txtidol.Text;
strSQL+="'"+" where id="+uid;
cn=new OleDbConnection(strConn);
cmd=new OleDbCommand(strSQL,cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
出现故障:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 57: uid=Convert.ToInt32(Session["uid"].ToString());
行 58: strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../")+"data/users.mdb";
行 59: strSQL="UPDATE information set marriage='"+rdomarriage.SelectedItem.Text;
行 60: strSQL+="',set nation='"+dronation.SelectedItem.Text;
行 61: strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";
源文件: D:\heilsin\1\www\new\Member\MyEdit.aspx 行: 59 请指教!!
private void btnsubmit_click(object sender, System.EventArgs e)
{
uid=Convert.ToInt32(Session["uid"].ToString());
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../")+"data/users.mdb";
strSQL="UPDATE information set marriage='"+rdomarriage.SelectedItem.Text;
strSQL+="',set nation='"+dronation.SelectedItem.Text;
strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";
strSQL+="',set academic='"+droacademic.SelectedItem.Text;
strSQL+="',set job='"+drojob.SelectedItem.Text;
strSQL+="',set income='"+droincome.SelectedItem.Text;
strSQL+="',set area='"+txtarea.Text;
strSQL+="',set question='"+txtquestion.Text;
strSQL+="',set answer='"+txtanswer.Text;
strSQL+="',set star='"+drostar.SelectedItem.Text;
strSQL+="',set weight='"+txtweight.Text;
strSQL+="',set qq='"+txtqq.Text;
strSQL+="',set msn='"+txtmsn.Text;
strSQL+="',set school='"+txtschool.Text;
strSQL+="',set tel='"+txttel.Text;
strSQL+="',set mobile='"+txtmobile.Text;
strSQL+="',set page=''"+txtpage.Text;
strSQL+="',set sport='"+txtsport.Text;
strSQL+="',set movie='"+txtmovie.Text;
strSQL+="',set music='"+txtmusic.Text;
strSQL+="',set food='"+txtfood.Text;
strSQL+="',set book='"+txtbook.Text;
strSQL+="',set idol='"+txtidol.Text;
strSQL+="'"+" where id="+uid;
cn=new OleDbConnection(strConn);
cmd=new OleDbCommand(strSQL,cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
出现故障:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 57: uid=Convert.ToInt32(Session["uid"].ToString());
行 58: strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../")+"data/users.mdb";
行 59: strSQL="UPDATE information set marriage='"+rdomarriage.SelectedItem.Text;
行 60: strSQL+="',set nation='"+dronation.SelectedItem.Text;
行 61: strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";
源文件: D:\heilsin\1\www\new\Member\MyEdit.aspx 行: 59 请指教!!
也就是说,rdomarriage.SelectedItem都没有值,Text更没意义
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: UPDATE 语句的语法错误。源错误:
行 84: cmd=new OleDbCommand(strSQL,cn);
行 85: cn.Open();
行 86: cmd.ExecuteNonQuery();
行 87: cn.Close();
行 88:
源文件: D:\heilsin\1\www\new\Member\MyEdit.aspx 行: 86
SET state = 'PC', city = 'Bay City'
WHERE state = 'CA' AND city = 'Oakland'第一次看到写这么多set的
行 84: cmd=new OleDbCommand(strSQL,cn);
行 85: cn.Open();
行 86: cmd.ExecuteNonQuery();
行 87: cn.Close();
行 88:
update语句写错了
然后选中strSQL,按下Ctrl+Alt+Q,弹出一个框,里面有生成好的SQL语句,复制语句到
查询分析器中,去掉前后的引号,执行语句,就可以知道语句错误在什么地方了。
strSQL+="',set academic='"+droacademic.SelectedItem.Text;
strSQL+="',set job='"+drojob.SelectedItem.Text;
strSQL+="',set income='"+droincome.SelectedItem.Text;
strSQL+="',set area='"+txtarea.Text;
完全不符合书写SQL的要求,你应当修改类似如下:strSQL+="academic='"+droacademic.SelectedItem.Text + "',";
strSQL+="job='"+drojob.SelectedItem.Text + "',";
strSQL+="income='"+droincome.SelectedItem.Text + "',";
strSQL+="area='"+txtarea.Text + "',";
因为,每一句后面的单引号,应该与当前行同一行,而不应该跟在后一行.
以后记得加空格,自己也好看明白些
rdomarriage.SelectedItem.Text
把这句放在别的地方看看
strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";
->
strSQL+="',set permanent='"+txtprovince.Text+"省"+txtcity.Text+"市";这样应该就可以了。另外,把sql语句直接执行一下,看看是否还有别的错误。