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

时间:2018-04-03 02:48:33

标签: c# sql-server connection-string

我正在尝试构建一个自定义连接字符串,该字符串会将用户登录到特定的SQL Server用户。我尝试了很多连接字符串的变化,但没有任何作用。这是功能。

服务器许可证 - 开发人员

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

db.open()时崩溃;言。

尝试抓住它并收到此错误消息

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误: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)我的SQL服务器仅配置为Windows身份验证。

4 个答案:

答案 0 :(得分:1)

你能试试吗?

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)

答案 1 :(得分:0)

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

请检查https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

上的示例连接字符串

答案 2 :(得分:0)

看起来你的连接字符串格式是错误的。请使用您的参数尝试以下格式。初始目录是您的数据库名称。

=" Data Source =; Initial Catalog =; Persist Security Info = True; User ID =; Password =;

答案 3 :(得分:0)

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

这是一个例子。

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