无论如何都要从c#连接到sybase,而无需在控制面板中添加ODBC DSN连接

问题描述 投票:1回答:3

我正在寻找一种从C#连接到sybase的方法,而无需在机器上本地设置ODBC DSN连接。

这可能吗?我尝试了所有这些不同的连接字符串:

static private DataTable Run(string sql)
{
    var conn = new OdbcConnection();

    const string CONN_STRING2 =
        "Data Source='[myServer]';Port=5020;Database=[dbName];Uid=[user];Pwd=[pwd];";

    const string CONN_STRING1 =
        "Provider=Sybase.ASEOLEDBProvider.2;Server Name=[myServer];Server Port Address=5020;Initial Catalog=[dbName];User ID=[user];Password=[pwd];";

    conn.Open();

    var da = new OdbcDataAdapter { SelectCommand = conn.CreateCommand() };
    da.SelectCommand.CommandText = sql;
    var dt = new DataTable();
    da.Fill(dt);
    da.Dispose();
    conn.Close();

    return dt;
}

但我得到一个错误说明:

{“ERROR [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序”}

c# connection-string sybase
3个回答
2
投票

您正在使用var conn = new OdbcConnection()。这就是你得到错误的原因。

您将需要使用sybase oledb客户端库。我根本不知道sybase,但最后我听说需要购买第三方提供商。这差不多是三年前所以他们现在可能有一个。

然后你需要做像var connection = new ASEConnection()这样的事情。


0
投票

从以下链接下载DLL:

Sybase library

使用此库进行连接:

ASEconnection connection = new AseConnection();

-1
投票

使用特定的ADO.Net数据提供程序stright from manufacturer(SAP现在拥有sybase)。我认为您可以使用this reference自己创建连接字符串。对于example

var connStr = @"Data Source=\\myserver\myvolume\mypat\mydd.add;User ID=myUsername;
Password=myPassword;ServerType=REMOTE;"
using (ASEConnection conn = new AseConnection(connStr)) {
    // use conn
}

可以从前面提到的文档中获得相同的信息。

© www.soinside.com 2019 - 2024. All rights reserved.