使用如下代码更新数据库:
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 请指教!!

解决方案 »

  1.   

    rdomarriage.SelectedItem.Text应该是null
    也就是说,rdomarriage.SelectedItem都没有值,Text更没意义
      

  2.   

    改了以后,那句可以了,但是:UPDATE 语句的语法错误。 
    说明: 执行当前 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 
      

  3.   

    UPDATE authors
       SET state = 'PC', city = 'Bay City'
          WHERE state = 'CA' AND city = 'Oakland'第一次看到写这么多set的
      

  4.   

    strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";->strSQL+="',set permanent='"+txtprovince.Text+"省"+txtcity.Text+"市";
      

  5.   

    源错误: 
    行 84:  cmd=new OleDbCommand(strSQL,cn);
    行 85:  cn.Open();
    行 86:  cmd.ExecuteNonQuery();
    行 87:     cn.Close();
    行 88: 
    update语句写错了
      

  6.   

    你可以把sql语句打出来看看能不能执行,很快可以找到问题
      

  7.   

    在cn=new OleDbConnection(strConn)处设置断点调试,然后运行,程序到断点处暂停,
    然后选中strSQL,按下Ctrl+Alt+Q,弹出一个框,里面有生成好的SQL语句,复制语句到
    查询分析器中,去掉前后的引号,执行语句,就可以知道语句错误在什么地方了。
      

  8.   

    除了第一个set,后面的set全部去掉
      

  9.   

    另外,象以下的写示
    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 + "',";
    因为,每一句后面的单引号,应该与当前行同一行,而不应该跟在后一行.
      

  10.   

    strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";->strSQL+="',set permanent='" + txtprovince.Text + "' + '省' + '"+txtcity.Text+"' + '市'";
    以后记得加空格,自己也好看明白些
      

  11.   

    看提示,抱错的应该是
    rdomarriage.SelectedItem.Text
    把这句放在别的地方看看
      

  12.   

    1、只留下第一个set2、修改
    strSQL+="',set permanent='"+txtprovince.Text+"'省'"+txtcity.Text+"'市";
    ->
    strSQL+="',set permanent='"+txtprovince.Text+"省"+txtcity.Text+"市";这样应该就可以了。另外,把sql语句直接执行一下,看看是否还有别的错误。