问题描述
我想使用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和端口一起使用,则会出现错误:
更新: 实例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();
}