我正在创建一个通过ADO.NET连接到MS SQL Sever的客户端应用程序。我需要用户指定连接到数据库的连接字符串。但是,用户只应连接到其计算机上安装的SQL Server Express。我需要检查连接字符串以确定它是否是本地连接字符串。
显而易见的想法是检查CS是否以“。”开头。或“local”或“* this_machine_name *”。但我不确定是否涵盖了所有可能的情况。
有没有更好的方法来执行此类检查?
UPD:我暗示本地计算机上可能有多个SQL Server实例,并且实例名称未知。也可能有一个未命名的实例。
UPD2:实际上我只要求用户指定一个SQLServer实例。
谢谢。
答案 0 :(得分:0)
而不是验证连接字符串,是否更容易提示用户输入数据库名称,是否使用集成的auth,如果不是,则使用用户名和密码,然后使用'建立自己的连接字符串' (本地)'作为服务器?
答案 1 :(得分:0)
检索连接字符串,从中提取主机名,将主机名传递给System.Net.Dns.GetHostEntry(String)和voíla!您将获得包含IP地址的IPHostEntry实例。检查127.0.0.1是否存在。