ORA-01745: 无效的主机/赋值变量名 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OracleClient.OracleException: ORA-01745: 无效的主机/赋值变量名 源错误: 
行 144:
行 145: Conn.Open();
行 146: int count = cmd.ExecuteNonQuery();
行 147: Conn.Close();
行 148: return count;
 源文件: e:\weboa\bll\room.cs    行: 146

解决方案 »

  1.   

    看看摸conn的数据库连接语句有没有错
      

  2.   

    string roomname=txtRoomName.Text.ToString();
    int roomtypeid=int.Parse(drpMeetingRoomtype.SelectedItem.Value);
    string dept=drpDepartment.SelectedItem.Value.ToString();
    int avgnumber=int.Parse(txtAvgNumber.Text.ToString());
    int maxnumber=int.Parse(txtMaxMember.Text.ToString());
    string status=drpRoomStatus.SelectedItem.Text.ToString();
    string ispublic=drpIfPublic.SelectedItem.Text.ToString();
    string location=txtRoomLocation.Text.ToString();
    string resource=txtRoomResources.Text.ToString();
    string comments=txtComments.Text.ToString();
      

  3.   

    Room roomdata=new Room();
    roomdata.AddMeetingRoom(roomname,roomtypeid,dept,avgnumber,maxnumber,status,ispublic,location,resource,comments);
      

  4.   

    more code in the class roomdata please
      

  5.   

    sql 语句的问题,可能使用了保留字。---------------------------------------------------
    ORA-01745: invalid host/bind variable name 
    Cause: A colon in a bind variable or INTO specification was followed by an inappropriate name, perhaps a reserved word. Action: Change the variable name and retry the operation. 
    ---------------------------------------------------
    Be wary of reserved words that you use as bind variables because they may not work. For example: set date "2000-07-08"
    set bind_vars [ad_tcl_vars_to_ns_set date]
    db_string date_select "select :date from dual" -bind $bind_vars
    ns_set free $bind_vars
    Fails with an error of ORA-01745: invalid host/bind variable name 
    You can't use :date as a bind variable. Instead; set current_date "2000-07-08"
    set bind_vars [ad_tcl_vars_to_ns_set current_date]
    db_string current_date_select "select :current_date from dual" -bind
    $bind_vars
    ns_set free $bind_vars
      

  6.   

    对,可能是sql 语句使用了保留字。
      

  7.   

    public void AddMeetingRoom(string roomname,string location,string dept,string roomtypeid,string status,string ispublic,int avgnumber,int maxnumber,string resource,string comments)
    {
    string strSql = "insert into to_meeting_room (room_id,dept_id,room_type_id,room_name,room_normal_capacity,room_max_capacity,room_res_id,room_location,room_status_id,is_public,room_comments) values (roomid_sequence.nextval,:@dept,:@roomtypeid,:@roomname,:@avgnumber,:@maxnumber,:@resource,:@location,:@status,:@ispublic,:@comments)";
        OracleCommand insertcmd = new OracleCommand(strSql,Conn);
            
    insertcmd.Parameters.Add(new OracleParameter("@roomname",OracleType.VarChar,100));
    insertcmd.Parameters["@roomname"].Value=roomname;
        insertcmd.Parameters.Add(new OracleParameter("@location",OracleType.VarChar,200));
        insertcmd.Parameters["@location"].Value=location;
        insertcmd.Parameters.Add(new OracleParameter("@dept",OracleType.VarChar,8));
        insertcmd.Parameters["@dept"].Value=dept;
        insertcmd.Parameters.Add(new OracleParameter("@roomtypeid",OracleType.VarChar,8));
        insertcmd.Parameters["@roomtypeid"].Value=roomtypeid;
        insertcmd.Parameters.Add(new OracleParameter("@status",OracleType.VarChar,10));
        insertcmd.Parameters["@status"].Value=status;
        insertcmd.Parameters.Add(new OracleParameter("@ispublic",OracleType.VarChar,10));
        insertcmd.Parameters["@ispublic"].Value=ispublic;
    insertcmd.Parameters.Add(new OracleParameter("@avgnumber",OracleType.Number,12));
    insertcmd.Parameters["@avgnumber"].Value=avgnumber;
    insertcmd.Parameters.Add(new OracleParameter("@maxnumber",OracleType.Number,12));
    insertcmd.Parameters["@maxnumber"].Value=maxnumber;
    insertcmd.Parameters.Add(new OracleParameter("@resource",OracleType.VarChar,500));
    insertcmd.Parameters["@resource"].Value=resource;
    insertcmd.Parameters.Add(new OracleParameter("@comments",OracleType.VarChar,500));
    insertcmd.Parameters["@comments"].Value=comments;

    Conn.Open();
    insertcmd.ExecuteNonQuery();
    Conn.Close();


    }
      

  8.   

    OracleConnection Conn=new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    此语句是在ROOM类里定义的
    数据库连接没问题
    其他页面完全可以进行数据库操作
    现在又出现新错误,下面是调试信息,传进去的数据值是正确的
    ////////////////////////////////////
    OracleException: ORA-01036: 非法的变量名/编号
    ]
       System.Data.OracleClient.OracleConnection.CheckError(OciHandle errorHandle, Int32 rc) +80
       System.Data.OracleClient.OracleParameterBinding.Bind(OciHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection) +1177
       System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals) +1936
       System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciHandle& rowidDescriptor) +32
       System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciHandle& rowidDescriptor) +170
       System.Data.OracleClient.OracleCommand.ExecuteNonQuery() +56
       DA.Room.AddMeetingRoom(String roomname, String location, String dept, String roomtypeid, String status, String ispublic, Int32 avgnumber, Int32 maxnumber, String resource, String comments) in e:\weboa\da\room.cs:168
       WebOA.meeting.MeetingRoomDetail.btnAddMeetingRoom_Click(Object sender, EventArgs e) in e:\weboa\weboa\submodule\meeting\meetingroomdetail.aspx.cs:140
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
       System.Web.UI.Page.ProcessRequestMain() +1277 
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573 
    请求详细信息 
    会话 ID: wyr4bq55vhpeaom1gnl1ida5 请求类型: POST 
    请求的时间: 2005-2-12 0:51:34 状态代码: 500 
    请求编码: Unicode (UTF-8) 响应编码: Unicode (UTF-8) 
    跟踪信息 
    类别 消息 From First(s) From Last(s) 
    aspx.page Begin Init   
    aspx.page End Init 0.000113 0.000113 
    aspx.page Begin LoadViewState 0.000182 0.000069 
    aspx.page End LoadViewState 0.000451 0.000269 
    aspx.page Begin ProcessPostData 0.000537 0.000087 
    aspx.page End ProcessPostData 0.000701 0.000164 
    aspx.page Begin ProcessPostData Second Try 0.000776 0.000074 
    aspx.page End ProcessPostData Second Try 0.000813 0.000038 
    aspx.page Begin Raise ChangedEvents 0.000855 0.000042 
    aspx.page End Raise ChangedEvents 0.000893 0.000038 
    aspx.page Begin Raise PostBackEvent 0.000927 0.000034 
     aaaaaa 0.004032 0.003105 
    未处理的执行错误 
    ORA-01036: 非法的变量名/编号  at System.Data.OracleClient.OracleConnection.CheckError(OciHandle errorHandle, Int32 rc)
      at System.Data.OracleClient.OracleParameterBinding.Bind(OciHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection)
      at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals)
      at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciHandle& rowidDescriptor)
      at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciHandle& rowidDescriptor)
      at System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
      at DA.Room.AddMeetingRoom(String roomname, String location, String dept, String roomtypeid, String status, String ispublic, Int32 avgnumber, Int32 maxnumber, String resource, String comments) in e:\weboa\da\room.cs:line 168
      at WebOA.meeting.MeetingRoomDetail.btnAddMeetingRoom_Click(Object sender, EventArgs e) in e:\weboa\weboa\submodule\meeting\meetingroomdetail.aspx.cs:line 140
      at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
      at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
      at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
      at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
      at System.Web.UI.Page.ProcessRequestMain() 0.011638 0.007606 
    控件树 
    控件 ID 类型 呈现大小字节数(包括子级) 视图状态大小字节数(排除子级) 
    Cookie 集合 
    名称 值 大小 
    ASP.NET_SessionId wyr4bq55vhpeaom1gnl1ida5 42 
    标头集合 
    名称 值 
    Cache-Control no-cache 
    Connection Keep-Alive 
    Content-Length 614 
    Content-Type application/x-www-form-urlencoded 
    Accept image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* 
    Accept-Encoding gzip, deflate 
    Accept-Language zh-cn 
    Authorization NTLM TlRMTVNTUAADAAAAAAAAAEgAAAAAAAAASAAAAAAAAABIAAAAAAAAAEgAAAAAAAAASAAAAAAAAABIAAAABcKAogUAkwgAAAAP 
    Cookie ASP.NET_SessionId=wyr4bq55vhpeaom1gnl1ida5 
    Host localhost 
    Referer http://localhost/WebOA/SubModule/meeting/MeetingRoomDetail.aspx 
    User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) 
    窗体集合 
    名称 值 
    __EVENTTARGET   
    __EVENTARGUMENT   
    __VIEWSTATE dDwxNjA4MDA4MzU2O3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDExPjtpPDE1Pjs+O2w8dDx0PDt0PGk8ND47QDzotKLliqHpg6g76ZSA5ZSu6YOoO+W3peeoi+mDqDvov5DovpPpg6g7PjtAPDAxOzAyOzAzOzA0Oz4+Oz47Oz47dDx0PDt0PGk8Mz47QDzlhazlhbHkvJrorq7lrqQ756eB5Lq65Lya6K6u5a6kO+S4k+eUqOS8muiuruWupDs+O0A8MTsyOzM7Pj47Pjs7Pjs+Pjs+Pjs+yK8+eQifyGNHxYXZg6q1wR3ReUA= 
    txtRoomName fef 
    txtRoomLocation ere 
    drpDepartment 01 
    drpMeetingRoomtype 1 
    drpRoomStatus 1 
    drpIfPublic 1 
    txtAvgNumber 232 
    txtMaxMember 323 
    txtComments erre 
    txtRoomResources rere 
    btnAddMeetingRoom 添加会室