【问题标题】:Connecting multiple sql users to one database with entity framework使用实体框架将多个sql用户连接到一个数据库
【发布时间】:2015-12-21 22:31:17
【问题描述】:

您好,我是 C# winform 的初学者, 我必须通过登录表单(文本框:名称 - 密码)将多个用户(400 个不同的用户)连接到使用 Winform C# 的单个 sql 数据库,所有用户都是在数据库中创建的 sql 用户,并且具有用户或管理员等角色。 我一直在寻找一种使用实体框架执行此操作的简单方法,但找不到任何内容.. 任何人都知道如何做到这一点? 感谢您的帮助。

【问题讨论】:

  • 请阅读该网站关于如何提问的帮助。这个问题太笼统了。

标签: c# sql-server winforms entity-framework


【解决方案1】:

每个用户都需要自己登录数据库吗?

如果是这样,您需要编写一个特殊的连接字符串,如下所示:

using System.Data.SqlClient;

SqlConnection conn = new SqlConnection();
conn.ConnectionString =
    "Data Source=ServerName;" +
    "Initial Catalog=DataBaseName;" +
    "User id=" + UserName + ";"
    "Password=" + Password + ";";
 conn.Open();

把它放在一个接受用户名和密码的类中。

完整示例:

class myConnection
{
    public static SqlConnection GetConnection(string UserName, string Password)
    {
        string str = "Data Source=ServerName;Initial Catalog=DataBaseName;User id=" + UserName + ";Password=" + Password + ";";
        SQlConnection con = new SqlConnection(str);
        con.Open();
        return con;
    }
}

【讨论】:

    【解决方案2】:

    用户凭据在连接字符串中指定,因此您需要使用用户在登录表单中提供的数据构建连接字符串。

    var sqlBuilder = new SqlConnectionStringBuilder();
    
    // Set the properties for the data source.
    sqlBuilder.DataSource = "ServerName";
    sqlBuilder.InitialCatalog = "DatabaseName";
    
    sqlBuilder.UserID = "USERNAME";
    sqlBuilder.Password = "PASSWORD";
    
    sqlBuilder.IntegratedSecurity = true;
    
    // Build the SqlConnection connection string.
    string providerString = sqlBuilder.ToString();
    
    // Initialize the EntityConnectionStringBuilder.
    var entityBuilder = new EntityConnectionStringBuilder();
    
    //Set the provider name.
    entityBuilder.Provider = "System.Data.SqlClient";
    
    // Set the provider-specific connection string.
    entityBuilder.ProviderConnectionString = providerString;
    

    然后使用这个连接字符串来初始化你的DbContext

    var context = new DbContext(entityBuilder.ConnectionString);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2015-07-27
      相关资源
      最近更新 更多