使用 .NET 连接字符串连接到远程 SQL Anywhere 12 数据库
Connecting to a remote SQL Anywhere 12 database with .NET connection string
我很难使用 .NET 连接字符串连接到 SQL Anywhere 12 数据库。
我正在使用以下查询字符串:
Data Source=xxx.xxx.xxx.xxx,yyyy; Initial Catalog={MyDatabaseName}; User ID={MyUsername}; Password={MyPassword}
(其中 xxx.xxx.xxx.xxx = 远程服务器的 IP 地址,yyyy 是所需的端口)
我正在尝试 运行 使用以下代码来测试我的连接:
private const string connectionString = "{MyQueryString}";
private const string testQuery = "{ATestSelectQuery}";
using (SqlConnection conn = new SqlConnection(connectionString))
{
ExecuteNonQuery(conn, testQuery);
}
static void ExecuteNonQuery(SqlConnection conn, string query)
{
try
{
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("ERROR: {0}", ex.Message);
}
}
但是,当我 运行 收到以下错误消息时:
ERROR: A connection was successfully established with the server, but
then an error occurred during the pre-login handshake. (provider: TCP
Provider, error: 0 - An existing connection was forcibly closed by the
remote host.)
您的代码看起来像是在尝试连接到 Microsoft SQL 服务器,而不是 SQLAnywhere 12 服务器。 SqlConnection、SqlCommand 等仅适用于 Microsoft SQL 服务器。 SQLAnywhere 12 的 .NET 客户端对象是 SAConnection、SACommand 等
您需要确保安装了正确的 SQLAnywhere .NET 客户端文件。如果您不知道或不确定,请下载 SQL Anywhere Developer Edition。这是免费的。客户端版本 12-17 将连接到您的版本 12 服务器。请注意 SQLAnywhere 的连接字符串与 MS SQL 服务器的连接字符串非常不同。
我很难使用 .NET 连接字符串连接到 SQL Anywhere 12 数据库。
我正在使用以下查询字符串:
Data Source=xxx.xxx.xxx.xxx,yyyy; Initial Catalog={MyDatabaseName}; User ID={MyUsername}; Password={MyPassword}
(其中 xxx.xxx.xxx.xxx = 远程服务器的 IP 地址,yyyy 是所需的端口)
我正在尝试 运行 使用以下代码来测试我的连接:
private const string connectionString = "{MyQueryString}";
private const string testQuery = "{ATestSelectQuery}";
using (SqlConnection conn = new SqlConnection(connectionString))
{
ExecuteNonQuery(conn, testQuery);
}
static void ExecuteNonQuery(SqlConnection conn, string query)
{
try
{
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("ERROR: {0}", ex.Message);
}
}
但是,当我 运行 收到以下错误消息时:
ERROR: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
您的代码看起来像是在尝试连接到 Microsoft SQL 服务器,而不是 SQLAnywhere 12 服务器。 SqlConnection、SqlCommand 等仅适用于 Microsoft SQL 服务器。 SQLAnywhere 12 的 .NET 客户端对象是 SAConnection、SACommand 等
您需要确保安装了正确的 SQLAnywhere .NET 客户端文件。如果您不知道或不确定,请下载 SQL Anywhere Developer Edition。这是免费的。客户端版本 12-17 将连接到您的版本 12 服务器。请注意 SQLAnywhere 的连接字符串与 MS SQL 服务器的连接字符串非常不同。