使用实体框架将多个sql用户连接到一个数据库

本文关键字:数据库 一个 连接 sql 实体 框架 用户 | 更新日期: 2023-09-27 18:27:36

你好,我是C#winform的初学者,我必须通过一个登录表单(文本框:name-password)将多个用户(400个不同的用户)连接到一个带有Winform C#的sql数据库,所有用户都是在数据库中创建的sql用户,并具有用户或管理员等角色。我一直在寻找一种简单的方法来实现实体框架,但找不到任何东西。。有人知道怎么做吗?谢谢你的帮助。

使用实体框架将多个sql用户连接到一个数据库

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

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

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;
    }
}

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

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);
相关文章: