用实体框架将多个sql用户连接到一个数据库
问题描述:
您好,我是C#winform的初学者, 我必须通过登录表单(文本框:名称 - 密码)将多个用户(400个不同的用户)连接到单个sql数据库使用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);
请仔细阅读该网站的上如何提问帮助。这个问题太广泛了。 –