ORA-01008: 并非所有变量都已关联 
下面是代码,检查不出,哪个变量没赋值关联啊。小弟新手,谢谢指教。 protected void btChangeProc_Click(object sender, EventArgs e)
    {        string CaseId = Request["CaseId"];
        string AptdDept = ddlDeptId.SelectedValue.ToString();
        string AptdUser = ddlProcUser.SelectedValue.ToString();
        OracleConnection cn = new OracleConnection(OracleHelper.ConnectionStringLocalTransaction); 
        OracleCommand cmd = new OracleCommand("UPDATE O_C_CaseRecord set APTDDEPT= :AptdDept, APTDUSER = :AptdUser, STATE = '待处理' WHERE CASEID= :CaseId ",cn);         cn.Open(); 
       
        //执行命令
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        //判断是否修改成功
        if (val > 0)
            btChangeProc.Text = "移交成功";
        else
            btChangeProc.Text = "移交失败";        cn.Close(); 
        
        
    }
}
报错: 
+ $exception {"ORA-01008: 并非所有变量都已关联\n"} System.Exception {System.Data.OracleClient.OracleException} 
+ this {ASP.memberpages_operm_case_chgcaseproc_aspx} MemberPages_OperM_Case_ChgCaseProc {ASP.memberpages_operm_case_chgcaseproc_aspx} 
+ sender {Text = "确认移交"} object {System.Web.UI.WebControls.Button} 
+ e {System.EventArgs} System.EventArgs 
CaseId " 2008121110" string 
AptdDept "1" string 
AptdUser "jiangxy" string 
+ cn {System.Data.OracleClient.OracleConnection} System.Data.OracleClient.OracleConnection 
- cmd {System.Data.OracleClient.OracleCommand} System.Data.OracleClient.OracleCommand 
+ base {System.Data.OracleClient.OracleCommand} System.Data.Common.DbCommand {System.Data.OracleClient.OracleCommand} 
CommandText "UPDATE O_C_CaseRecord set APTDDEPT= :AptdDept, APTDUSER = :AptdUser, STATE = '待处理' WHERE CASEID= :CaseId " string 
CommandTimeout 0 int 
CommandType Text System.Data.CommandType 
+ Connection {System.Data.OracleClient.OracleConnection} System.Data.OracleClient.OracleConnection 
DesignTimeVisible true bool 
+ Parameters {System.Data.OracleClient.OracleParameterCollection} System.Data.OracleClient.OracleParameterCollection 
+ Transaction null System.Data.OracleClient.OracleTransaction 
UpdatedRowSource Both System.Data.UpdateRowSource 
+ 静态成员 
+ 非公共成员 
val 0 int 

解决方案 »

  1.   

    UPDATE O_C_CaseRecord set APTDDEPT= :AptdDept, APTDUSER = :AptdUser, STATE = '待处理' WHERE CASEID= :CaseId中的:AptdDept,:AptdUser和:CaseId没有赋值!
      

  2.   

    cmd.Parameters.Add(":AptdDept",OracleType.VarChar );
    cmd.Parameters.Add(":AptdUser",OracleType.Number );
    cmd.Parameters.Add(":CaseId",OracleType.Number );cmd.Parameters[":AptdDept"].Value=CaseId ;
    cmd.Parameters[":AptdUser"].Value=AptdDept ;
    cmd.Parameters[":CaseId"].Value=AptdUser;