使用实体框架将多个sql用户连接到一个数据库
本文关键字:数据库 一个 连接 sql 实体 框架 用户 | 更新日期: 2023-09-27 18:27:36
你好,我是C#winform的初学者,我必须通过一个登录表单(文本框:name-password)将多个用户(400个不同的用户)连接到一个带有Winform C#的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);