0

asp.netのOracleデータベースに接続しようとしています。SqlDataSourceとの接続を処理したい。以下のコードを使用すると、次のエラーが発生します。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとそれがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.ComponentModel.Win32Exception:システムは指定されたファイルを見つけることができません。

ソースエラー:

[Win32Exception(0x80004005):システムは指定されたファイルを見つけることができません。]

[SqlException(0x80131904):SQLServerへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、およびSQLServerがリモート接続を許可するように構成されていることを確認してください。(プロバイダー:名前付きパイププロバイダー、エラー: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#の外部のツールからアクセスできます。なぜデータベースに接続できないのか想像もつきませんでした。前もって感謝します。

4

2 に答える 2

0

[SqlException(0x80131904):SQLServerへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、およびSQLServerがリモート接続を許可するように構成されていることを確認してください。(プロバイダー:名前付きパイププロバイダー、エラー:40-SQL Serverへの接続を開くことができませんでした)]

connectin文字列に問題があるようです。ページをデータベースに接続できません。

次の接続文字列を使用します。

add name = "ConnectionString" connectionString = "Data Source = localhost; Password = 123456; User ID = TAHA"; Unicode = True "providerName =" System.Data.OracleClient "/>

于 2012-10-03T22:30:48.527 に答える
0

SqlDataSourceコントロールを使用してOracleデータベースに接続するには、SqlDataSourceを構成する必要があります。

1ツールボックスの[データ]タブから、SqlDataSourceコントロールをページにドラッグします。

2 SqlDataSource Tasksスマートタグが表示されない場合は、コントロールを右クリックして、[スマートタグの表示]をクリックします。

3 SqlDataSourceタスクリストで、[データソースの構成]をクリックします。

4 [データソースの構成]ダイアログボックスで、[新しい接続]をクリックします。

5[データソースの選択]ダイアログボックスが表示されます。

6 [データソース]リストで、[Oracle Database]をクリックし、[続行]をクリックします。

7[接続の追加]ダイアログボックスが表示されます。

8 [サーバー名]ボックスに、Oracleサーバーの名前を入力します。

9データベースに接続するためのユーザー名とパスワードを入力します。

10 [はい、この接続を保存します]チェックボックスがオンになっていることを確認し、必要に応じて接続文字列の名前を変更し、[次へ]をクリックして接続文字列情報をアプリケーションのWeb.configファイルに保存します。

11[ステートメントの選択]ペインが表示されます。

12[次へ]をクリックします。

13 [クエリのテスト]ボタンをクリックしてデータベースに対してクエリをテストし、[完了]をクリックします。

于 2012-09-26T07:42:59.377 に答える