Gridview的Oracle连接问题

时间:2012-09-26 06:56:38

标签: asp.net oracle gridview connection

我尝试在asp.net中连接oracle数据库。我想处理与SqlDataSource的连接。当我使用下面的代码时,我收到以下错误:

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

  

异常详细信息:System.ComponentModel.Win32Exception:系统   找不到指定的文件。

     

来源错误:

     

[Win32Exception(0x80004005):系统找不到该文件   指定。]

     

[SqlException(0x80131904):与网络相关或特定于实例的   建立与SQL Server的连接时发生错误。该   服务器未找到或无法访问。验证该实例   名称是正确的,并且SQL Server配置为允许远程   连接。 (提供者:命名管道提供者,错误:40 - 不能   打开与SQL Server的连接)]

这是aspx文件:


<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org  /TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
    <asp:SqlDataSource
        id="SqlDataSource1"
        runat="server"
        DataSourceMode="DataReader"            
        SelectCommand="SELECT * FROM PERSON "
        ConnectionString="<%$ ConnectionStrings:OracleConnectionString %>">
    </asp:SqlDataSource>


    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" BackColor="WindowFrame" AllowSorting="true" AllowPaging="true">

        <Columns>
            <asp:BoundField HeaderText="Numarası" DataField="ID" />
            <asp:BoundField HeaderText="Adı" DataField="NAME" />
            <asp:BoundField HeaderText="Soyadı" DataField="SURNAME" />

        </Columns>

    </asp:GridView>

    <br />

</div>       
</form>


但是我可以直接连接数据库,除了我可以用另一个代码文件连接它,程序如下:

    private void ReadOracleTypesExample(string connectionString)
    {
        OracleConnection connection = new OracleConnection(connectionString);
        connection.Open();
        OracleCommand command = connection.CreateCommand();
        try
        {
            command.CommandText = "SELECT * FROM PERSON";
            OracleDataReader reader = command.ExecuteReader();


        if (reader.HasRows)
        {
            while (reader.Read())
            {

                OracleString oraclesring2 = reader.GetOracleString(1);
                Label2.Text += ("<br />" + oraclesring2.ToString());

                OracleString oraclestring3 = reader.GetOracleString(2);
                Label3.Text += ("<br /> " + oraclestring3.ToString());
            }
        }
        else
        {
            Console.WriteLine("No rows found.");
        }
        reader.Close();

    }
    catch (Exception e)
    {
        Label1.Text = e.Message;
    }
    finally
    {
        connection.Close();
    }
}


oracle数据库可以通过c#以外的工具访问。我无法想象为什么我无法连接到数据库,我会跑掉轨道。提前谢谢。

2 个答案:

答案 0 :(得分:0)

为了使用SqlDataSource控件连接到Oracle数据库,必须配置SqlDataSource。

1从“工具箱”的“数据”选项卡中,将SqlDataSource控件拖到页面上。

2如果未显示SqlDataSource Tasks智能标记,请右键单击该控件,然后单击“显示智能标记”。

3在“SqlDataSource任务”列表中,单击“配置数据源”。

4在“配置数据源”对话框中,单击“新建连接”。

5将显示“选择数据源”对话框。

6在“数据源”列表中,单击“Oracle数据库”,然后单击“继续”。

7将显示“添加连接”对话框。

8在“服务器名称”框中,键入Oracle服务器的名称。

9输入用户名和密码以连接数据库。

10确保选中“是,保存此连接”复选框,根据需要更改连接字符串的名称,然后单击“下一步”以将连接字符串信息保存在应用程序的Web.config文件中。

11将显示“配置选择语句”窗格。

12单击“下一步”。

13单击“测试查询”按钮以针对数据库测试查询,然后单击“完成”。

答案 1 :(得分:0)

  

[SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)]

您的连接字符串似乎有问题。您的页面无法连接到数据库。

我使用以下连接字符串:

  

add name =“ConnectionString”connectionString =“Data Source = localhost; Password = 123456; User ID = TAHA”; Unicode = True“providerName =”System.Data.OracleClient“/&gt;