我正在寻找一种从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驱动程序管理器]未找到数据源名称且未指定默认驱动程序”}
答案 0 :(得分:2)
您正在使用var conn = new OdbcConnection()
。这就是你收到错误的原因。
您需要使用sybase oledb客户端库。我根本不知道sybase,但最后我听说需要购买第三方提供商。这差不多是三年前所以他们现在可能有一个。
然后您需要执行var connection = new ASEConnection()
之类的操作。
答案 1 :(得分:0)
答案 2 :(得分:-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
}
可以从前面提到的文档中获得相同的信息。