无法通过C#

问题描述

我想使用Windows身份验证连接到sql Server 2016。

我正在使用带有此连接字符串的C#

Server=192.168.1.12,14331;Database=master;Integrated Security=true;Timeout=30

Server=serversql\newinstance;Database=master;Integrated Security=true;Timeout=30

错误是超时连接。

将连接与sql Server身份验证一起使用时,如下所示:

Server=192.168.1.12,14331;Database=master;User Id=***;Password=****;Timeout=30

一切正常。

代码C#

var constr = "<connection string>";

using (var connection = new sqlConnection(constr))
{
    var command = connection.CreateCommand();
    command.CommandType = CommandType.Text;
    command.CommandText = "SELECT 1";
    command.CommandTimeout = 0;

    connection.open();
    command.ExecuteNonQuery();
}

但是当我使用sql Server Management Studio通过Windows身份验证检查到sql Server实例的连接时,就可以了。使用别名或IP地址无助于错误

我不明白为什么会收到此错误...

请帮帮我!谢谢大家!

更新: 如果我将连接1与IP和端口一起使用,则会出现错误

登录失败。该登录名来自不受信任的域,无法使用 在Windows中

更新: 实例sql安装在与我的PC相同的网络LAN上的其他PC上。 我在PC安装实例sql上检查了Log Viewer,但没有记录日志。

解决方法

我不确定它是否适合您,但您可以尝试一下:

SqlConnection cnn;
public connect(){
    string strConnect = @"Data Source=192.168.1.12,14331;Network Library=DBMSSOCN;Initial Catalog=master;User ID=****;Password=*****";
    cnn = new SqlConnection(strConnect);
    try
    {
        cnn.Open();
    }
    catch(Exception)
    {
        // connect failed
    }
}
public void ExeQuery(string query){
    // query="select * from tblA"
    SqlCommand sqlCmd = new SqlCommand(query,cnn);
    sqlCmd.ExecuteNonQuery();
    sql.Dispose();
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...