簡體   English   中英

是否有從C#連接到sybase的方法,而不必在控制面板中添加ODBC DSN連接

[英]is there anyway to connect to sybase from c# without having to add a ODBC DSN connection in control panel

我正在尋找一種從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;
}

但我有一個錯誤指出:

{“錯誤[IM002] [Microsoft] [ODBC驅動程序管理器]找不到數據源名稱,未指定默認驅動程序”}

您正在使用var conn = new OdbcConnection() 這就是為什么您得到錯誤。

您將需要使用sybase oledb客戶端庫。 我一點都不了解sybase,但最后我聽說有人需要購買第三方提供程序。 這已經快三年了,所以他們現在可能只有一個。

然后,您需要執行類似var connection = new ASEConnection()

從以下鏈接下載DLL:

Sybase庫

使用此庫進行連接:

ASEconnection connection = new AseConnection();

使用制造商直接提供的特定ADO.Net數據提供程序(SAP現在擁有sybase)。 我認為您可以使用此引用自行創建連接字符串。 例如

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

可以從前面提到的文檔中獲得相同的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM