代码之家  ›  专栏  ›  技术社区  ›  Fuppiz

C#使用服务器的用户名和密码连接到本地SQL Server数据库

  •  1
  • Fuppiz  · 技术社区  · 6 年前

    我正在尝试构建一个自定义连接字符串,该字符串将用户登录到特定的SQL Server用户。我尝试了许多连接字符串的变体,但都没有效果。下面是函数。

    服务器许可证-开发人员

    • 服务器类型:本地
    • 数据库:NLHospital
    • 凭据:从函数传递

    db.open() ;陈述

    对其进行了尝试捕获,并收到此错误消息

    建立与SQL Server的连接时,出现与网络相关或特定于实例的错误。找不到或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL Network Interfaces,错误:26-定位指定的服务器/实例时出错)

    有人能告诉我我做错了什么吗?

        public string LoginAndGetRole(string username, string password)
        {
            using (SqlConnection db = new SqlConnection(@"Server=(local)\NLHospital;Integrated Security=false;user id=" + username + ";password=" + password))
            {
                using (SqlCommand getRole = new SqlCommand("findUserRole", db))
                {
    
                    db.Open(); //crashes at this line
                    getRole.CommandType = CommandType.StoredProcedure;
                    getRole.Parameters.Add(new SqlParameter("@Username", username));
                    SqlDataReader reader = getRole.ExecuteReader();
    
                }
                db.Close();
                return "";
            }
        }
    

    编辑: 1) 仅为Windows身份验证配置了我的SQL server。

    4 回复  |  直到 6 年前
        1
  •  2
  •   Dhell Oliver Macatangay    6 年前

    你能试试这个吗?

    SqlConnection db = new SqlConnection(@"Data Source=(local); Initial Catalog=NLHospital; Integrated Security=false;user id=" + username + ";password=" + password)
    

    SqlConnection db = new SqlConnection(@"Data Source=localhost; Initial Catalog=NLHospital; Integrated Security=false;user id=" + username + ";password=" + password)
    
        2
  •  0
  •   Chirag Rupani    6 年前

    我认为你的连接字符串是错误的。您应该在“初始目录”或“数据库”中指定数据库名称。

    请检查以下位置的连接字符串示例 https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

        3
  •  0
  •   Janaka Neranjan    6 年前

    您的连接字符串格式似乎有误。请尝试以下格式与您的参数。初始目录是您的数据库名称。

    =“数据源=;初始目录=;持久安全信息=True;用户ID=;密码=;

        4
  •  0
  •   biz.tim    6 年前

    首先,请检查NLHospital是您的数据库实例名称吗?或者您的数据库名称?

    这是给你的一个例子。

    Data Source=ServerName\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True