我尝试在 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();
}
}
可以通过 c# 之外的工具访问 oracle 数据库。我无法想象为什么我不能连接到数据库,我会跑题。提前致谢。