【问题标题】:Connect to database using sql server authentication programatically以编程方式使用 sql server 身份验证连接到数据库
【发布时间】:2014-09-16 08:13:53
【问题描述】:

如何在 c# winforms 中以编程方式使用 sql server 身份验证连接到数据库?我的意思是我在 sql server 2012 中创建了一个名为 loginTesting 的登录名,并使用 loginTesting 作为用户。我想通过接受来自文本框的用户输入来访问 C# 中的登录名。谢谢。

【问题讨论】:

  • 在“使用简单的字符串操作来构造一个包含用户输入的用户名和密码的连接字符串”之外?你有任何编程经验吗?

标签: c# sql-server winforms


【解决方案1】:

您可以使用 SqlConnectionStringBuilder 类来构造 SqlConnection 对象所需的连接字符串:

SqlConnectionStringBuilder scsBuilder = new SqlConnectionStringBuilder();
scsBuilder.UserID = "username";
scsBuilder.Password = "password";
scsBuilder.DataSource = "servername or ip address";
scsBuilder.InitialCatalog = "databasename";
scsBuilder.IntegratedSecurity = false;

using (SqlConnection sqlCon = new SqlConnection(scsBuilder.ConnectionString))
{
  // perform your SQL tasks
}

进一步阅读:
SqlConnectionStringBuilder Class
SqlConnection Class

【讨论】:

    【解决方案2】:

    扩展答案 1,如果您想根据用户输入测试您的用户名/密码,您可以使用 SqlConnectionStringBuilder 对象,如下例所示:

    SqlConnectionStringBuilder connectionString = new SqlConnectionStringBuilder();
    connectionString.ConnectionString = @"data source=.;initial catalog=master;";
    connectionString.UserID = "username";
    connectionString.Password = "password";
    
    using (var sqlConnection = new SqlConnection(connectionString.ConnectionString))
    {
    
    }
    

    【讨论】:

    • 它工作正常,但我不能在我的其他表单中使用它。我做了这样的事情:connectionString.ConnectionString = @"data source=myDataSource.;initial catalog=master;"; connectionString.UserID = txtUser.text; connectionString.Password = txtPassword.text;
    • 尝试创建一个包含静态方法的数据库类来获取数据库连接,然后在表单中使用它以保持一致性,例如:
    • class Database { public static SqlConnection CreateSqlConnection(string username, string password) { SqlConnectionStringBuilder sqlConnectionString = new SqlConnectionStringBuilder(); sqlConnectionString.ConnectionString = @"data source=myDataSource.;initial catalog=master;"; ; sqlConnectionString.UserID = username; sqlConnectionString.Password = password; return new SqlConnection(sqlConnectionString.ConnectionString); } }
    • 然后在您的表单中调用数据库的 CreateSqlConnection 方法并传入您的用户名/密码值,如下所示:using (var sqlConnection = Database.CreateSqlConnection("username", "password")) { //Do something }
    【解决方案3】:

    您需要创建一个新的 SQLConnection(并在使用后将其清除)。

    using(var connection = new SqlConnection(connectionString))
    {
       // Do something
    }
    

    棘手的一点是获取正确的连接字符串,但幸运的是有资源可以提供帮助。结帐ConnectionStrings.com 找到一个看起来应该可以工作的连接字符串,插入你的凭据/服务器等,你就可以开始了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多