C#ADO.NET SQL Server连接

C#ADO.NET SQL Server连接,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,当我做这样的事情时 string connString = @"Data Source=localhost\SQLEXPRESS;Database=TestDB;Integrated Security=True;"; string sql = @"select name, age from dbo.Student"; SqlDataReader reader; SqlConnection conn = new SqlConnection(connString); SqlCommand cmd

当我做这样的事情时

string connString = @"Data Source=localhost\SQLEXPRESS;Database=TestDB;Integrated Security=True;";
string sql = @"select name, age from dbo.Student";

SqlDataReader reader;

SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd;

conn.Open();
cmd = new SqlCommand(sql, conn);

reader = cmd.ExecuteReader();
在本地计算机上运行名为
localhost\SQLEXPRESS
的SQL Server时。应用程序如何知道我正在连接本地数据库,因为这只是一个名称,而不像IP地址那样是一个地址?当我尝试将数据源更改为类似于“127.0.0.1”时,为什么它不起作用

我是ASP.NET新手。谢谢你的评论

应用程序如何知道我正在连接本地数据库,因为这只是一个名称,而不像IP地址那样是一个地址

它的工作方式与在地址栏中键入stackoverflow.com访问stackoverflow.com的方式相同。它会进行DNS查找,并自行解析IP地址。如果愿意,您可以自己键入IP地址(以及实例名称,请参阅下一点),它仍然可以工作
localhost
将解析为
127.0.0.1

当我尝试将数据源更改为类似“127.0.0.1”的内容时,它为什么不起作用

因为您只给了它IP,所以它将成功地到达您的计算机-但是您已经输入了SQL Server实例名称。它应该是这样的:

数据源=127.0.0.1\SQLEXPRESS;数据库=TestDB;综合安全=真实

(请注意“SQLExpress”)


如果你想更好地处理DNS,有大量的文章,假设你的windows安装在那里,你至少应该对DNS有一个基本的了解:

转到并在记事本中打开此文件 c:\Windows\System32\drivers\etc\hosts

你会在里面看到的

127.0.0.1本地主机
这将ip地址127.0.0.1映射到本地主机

读取,您只需将
localhost\SQLEXPRESS
更改为
127.0.0.1\SQLEXPRESS
。但在这两种情况下都必须使用实例的名称。请尝试以下操作:string connString=@“Server=。\SQLEXPRESS;Database=TestDB;Trusted_Connection=True”;