【发布时间】:2012-09-26 06:56:37
【问题描述】:
我尝试在 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 数据库。我无法想象为什么我不能连接到数据库,我会跑题。提前致谢。
【问题讨论】:
-
尝试设置 SQLDataSource 的 ProviderName 属性。默认值为 SQL Server。见msdn.microsoft.com/en-us/library/…
标签: asp.net oracle gridview connection