你没安装Oracle 客户端吧?

解决方案 »

  1.   

    首先安装客户端,记住,版本尽量要和服务端一样,然后建立连接串,然后在.nET平台上连接,拖拽,就可以了
      

  2.   

    1.安装Oracle 客户端;
    2.连接串:
    string sConnectionString="Provider=MSDAORA;Pass word=你访问数据库的密码;
    User ID=你访问数据库的用户名;Data Source=数据库服务名";
    如下:
    Provider="MSDAORA.1";User ID=smarthr;Data Source=rsgl;Password=smarthr你可以拖进OleDataAdapter,通过向导来完成。
      

  3.   

    積壓位大哥
    WEB發布的主機上裝了Oracle,別名也建了﹐且﹕
    我用C#寫的小系統(也是連Oracle的)都能正常運行。
      

  4.   

    各位大哥指教﹕
    SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 1月 6 10:11:51 2004Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.輸入使用者名稱:  mycost/mycost@ora54連線到:
    Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.6.0.0 - ProductionSQL>說明可以正常連接到Oracle了。
      

  5.   

    Weboracle.aspx文件:  <%@ Page Language="C#"%> 
      <%@ Import Namespace="System.Data"%> 
      <%@ Import Namespace="System.Data.OleDb"%> 
      <%@ Import Namespace="System.Resources" %>
      <%@ Import Namespace="System.Data.SqlClient" %>
      
      <html>  
      <script language="C#" runat="server"> 
      string sql="";
      string  ConnStr ="Provider=MSDAORA.1;Password=mycost;User ID=mycost;Data Source=ora54";
      void Page_Load(Object sender, EventArgs e) 
      { 
       //判斷是否隱藏PagerStyle-Mode 
       if (chk1.Checked) 
       { 
       Grid1.PagerStyle.Visible=true; 
       } 
       else 
       { 
       Grid1.PagerStyle.Visible=false; 
       } 
       BindGrid(); 
      } 
      void BindGrid() 
       { 
       //String Provider,DataBase,ConnStr,sql; 
      
       //第二步:執行SQL指令,選出記錄集合 
       OleDbDataAdapter Cmd; 
       OleDbConnection Cnn;
       sql ="select * from m_acct";
       
       Cnn=new OleDbConnection(ConnStr);
       Cmd=new OleDbDataAdapter(sql,Cnn); 
       DataSet ds=new DataSet(); 
       Cmd.Fill(ds,"m_acct"); 
       //第三步:將資料集合同DataGrid結合在一起 
       Grid1.DataSource=ds.Tables["m_acct"].DefaultView; 
       Grid1.DataBind(); 
       ShowStats(); 
       } 
      void PagerButtonClick(Object sender, EventArgs e) 
      { 
       //獲得LinkButton的參數值 
       String arg = ((LinkButton)sender).CommandArgument; 
       switch(arg) 
       { 
       case ("next"): 
       if (Grid1.CurrentPageIndex < (Grid1.PageCount - 1)) 
       Grid1.CurrentPageIndex ++; 
       break; 
       case ("prev"): 
       if (Grid1.CurrentPageIndex > 0) 
       Grid1.CurrentPageIndex --; 
       break; 
       case ("last"): 
       Grid1.CurrentPageIndex = (Grid1.PageCount - 1); 
       break; 
       default: 
       //本頁值 
       Grid1.CurrentPageIndex = int.Parse(arg); 
       break; 
       } 
          
       BindGrid(); 
      }
      public void Grid1_Edit(Object sender, DataGridCommandEventArgs e) 
      {
       
       Grid1.EditItemIndex = e.Item.ItemIndex;
         
      }
     public void Grid1_Cancel(Object sender, DataGridCommandEventArgs e) 
      {
       Grid1.EditItemIndex = -1;
         
      }
      public void Grid1_Update(Object sender, DataGridCommandEventArgs e) 
      {
         
      }
      public void Grid1_Delete(Object sender, DataGridCommandEventArgs e) 
      {
       OleDbConnection connDel = new OleDbConnection(ConnStr);
       connDel.Open();
       String sql_Del = "DELETE FROM m_acct " +
       " WHERE acct_no = " + e.Item.Cells[0].Text;   OleDbCommand OleDbCommandDel = new OleDbCommand(sql_Del,connDel);
       OleDbCommandDel.ExecuteNonQuery();
       connDel.Close();     
      }
      void Grid1_Page(Object sender, DataGridPageChangedEventArgs e) 
      { 
       //處理按下數位的方法 
       BindGrid(); 
      } 
      void ShowStats() 
      { 
       //顯示頁面資訊 
       lblCurrentIndex.Text = "當前頁數: " + ((int)Grid1.CurrentPageIndex+1); 
       lblPageCount.Text = "總頁數是: " + Grid1.PageCount; 
      } 
      </script> 
      <body> <div align="center"> 
      <h3><font face="Verdana">個性化的分頁實例</font></h3> 
      <form runat=server> 
      <ASP:DataGrid id="Grid1" runat="server" 
      AllowPaging="TRUE" 
      PageSize="10" 
      PagerStyle-Mode="NumericPages" 
      PagerStyle-HorizontalAlign="Right" 
      OnPageIndexChanged="Grid1_Page" 
      BorderColor="black"  
      BorderWidth="1" 
      GridLines="Both" 
      CellPadding="3" 
      CellSpacing="0" 
      Font-Name="Verdana" 
      Font-Size="8pt" 
      
      HeaderStyle-BackColor="#aaaadd" 
      AlternatingItemStyle-BackColor="#eeeeee" 
      AutoGenerateColumns="false"
      OnEditCommand="Grid1_Edit" 
      OnCancelCommand="Grid1_Cancel" 
      OnUpdateCommand="Grid1_Update" 
      OnDelteCommand="Grid1_Delete">
       
       
      <Columns>
    <asp:BoundColumn DataField="ACCT_NO" SortExpression="ACCT_NO" ReadOnly="True" HeaderText="會計科目代碼"></asp:BoundColumn>
    <asp:BoundColumn DataField="ACCT_NM" SortExpression="CLASS_NO" HeaderText="科目階層"></asp:BoundColumn>
    <asp:BoundColumn DataField="ACCT_CLASS" SortExpression="ACCT_NAME" HeaderText="會計科目名稱"></asp:BoundColumn>

            <asp:EditCommandColumn ButtonType="LinkButton" CancelText="Cancel" HeaderText="編輯" EditText="Edit" UpdateText="Update" /> 
            <asp:ButtonColumn Text= "Delete" CommandName="Delete" HeaderText="刪除"></asp:ButtonColumn> 
     </Columns>
      </ASP:DataGrid> 
      <p> 
      <font face="Verdana" size="-2">
      <asp:Label id="lblCurrentIndex" runat="server"/>
      <asp:Label id="lblPageCount" runat="server"/>
      </font>
      &nbsp;&nbsp;
      <asp:LinkButton id="btnFirst" runat="server" 
      Text="首頁" 
      CommandArgument="0" 
      ForeColor="navy" 
      Font-Name="verdana" Font-size="8pt" 
      OnClick="PagerButtonClick"/> 
        
      <asp:LinkButton id="btnPrev" runat="server" 
      Text="前頁" 
      CommandArgument="prev" 
      ForeColor="navy" 
      Font-Name="verdana" Font-size="8pt" 
      OnClick="PagerButtonClick"/> 
        
      <asp:LinkButton id="btnNext" runat="server" 
      Text="後頁" 
      CommandArgument="next"  
      ForeColor="navy" 
      Font-Name="verdana" Font-size="8pt" 
      OnClick="PagerButtonClick"/> 
        
      <asp:LinkButton id="btnLast" runat="server" 
      Text="末頁" 
      CommandArgument="last" 
      ForeColor="navy" 
      Font-Name="verdana" Font-size="8pt" 
      OnClick="PagerButtonClick"/>   <asp:Checkbox id="chk1" runat="server" 
      Text="顯示內置的頁數" 
      Font-Name="Verdana" 
      Font-Size="8pt" 
      AutoPostBack="true"/>   
      
      </form> 
      </div>
      </body> 
      </html> 
      
      

  6.   

    这样连接:
    OleDbConnection conn;
    String str_conn="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=****;Password=****;Data Source=ORCL"; 
    conn=new OleDbConnection(str_conn);
    conn.Open();
      

  7.   

    把连结字串写在页面里是个不好的习惯,你应该把获取连接字串写在一个Dll中,这个DLL中有一条函数就是从末个地方读取一个文件(一般用Xml文件),返回连接string,
    给你看一个我的连接文件
    <configure>
      <Server ID="0" TYPE="default" DEBUG="0">
        <ServerName>*****</ServerName>
        <DBName>*****</DBName>
        <LoginID>*****</LoginID>    
        <Password>*****</Password>
        <Provider>2</Provider>
        <log>0</log>    
      </Server>
      <Server ID="1" TYPE="server1" DEBUG="0">
        <ServerName>*****</ServerName>
        <DBName>*****</DBName>
        <LoginID>*****</LoginID>    
        <Password>*****</Password>
        <Provider>2</Provider>
        <log>0</log>   
      </Server>
     <ERP>Provider=MSDAORA;Password=apps;User ID=apps;Data Source=prd2;</ERP>
      <metadata_path>C:\web\metadata\</metadata_path>
      <materials_path>D:\Materials\</materials_path>
      <classroom_path>C:\web\classroom1\courses\</classroom_path>
      <progress_path>C:\web\progress\</progress_path>
      <supply_path>C:\web\supply\</supply_path>
      <reference_path>C:\web\supply\</reference_path>
      <quiz_path>c:\web\quizfile\</quiz_path>
      <temp_path>c:\web\temp\</temp_path>
      <copy_file>1</copy_file>  <SMTPServer>seed.net.tw</SMTPServer>
      <FromName>system</FromName>
      <FromMail>[email protected]</FromMail>
      <page_count>10</page_count>
    </configure><!-- Provider SQLOLEDB=0 , ODBC=1 , ORACLE=2 -->下面是读取函数, 注nNode是指连到哪个资料库
    public string CreateConnectionStr(int nNode)
    {
    XmlDocument xml=new XmlDocument();
    XmlNodeList ns;
    try
    {
    xml.Load(System.Environment.GetFolderPath(System.Environment.SpecialFolder.System)+"//configure.Xml");
    ns=xml.SelectNodes("//configure/Server");
    XmlNode n1=ns[nNode];
    string sTemp=n1.SelectSingleNode("Provider").InnerText.Trim();
    string sProvide="";
    switch(sTemp)
    {
    case "0":
    {
    sProvide="sqloledb";
    break;
    }
    case "1":
    { break;
    }
    case "2":
    {
    sProvide="OraOLEDB.Oracle";
    break;
    }
    }
    string sDataSource=n1.SelectSingleNode("ServerName").InnerText.Trim();
    string sUserID=n1.SelectSingleNode("LoginID").InnerText.Trim();
    string sPassword=n1.SelectSingleNode("Password").InnerText.Trim();
    strCon= "Provider="+sProvide+";"+"Data Source="+sDataSource+";"+"User Id="+sUserID+";"+"Password="+sPassword+";";
    return strCon;
    }
    catch(XmlException)
    {
    throw new ISDException("Can not load config file");
    }
    catch(XPathException)
    {
    throw new ISDException("Can not find node path");
    }
    }
    #endregion
      

  8.   

    我也是从别人那里学来的,有兴趣的话可以和我联系
    [email protected]
      

  9.   

    这个问题好像是把安装oracle的目录的用户权限更改一下就好了
    如果是2000/xp系统,就在共享与安全中加入asp_net用户就行了,把权限放到最大(所有权限都有),应该就可以了,如果还不行,把认证用户也加上