我尝试在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#以外的工具访问。我无法想象为什么我无法连接到数据库,我会跑掉轨道。提前谢谢。
答案 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;