2015-12-21 135 views
-1

您好,我是C#winform的初學者, 我必須通過登錄表單(文本框:名稱 - 密碼)將多個用戶(400個不同的用戶)連接到單個sql數據庫使用Winform C#,所有用戶都是在數據庫中創建的sql用戶,並具有用戶或管理員等角色。 我一直在尋找一個簡單的方法來做到這一點與實體框架,但無法找到任何..任何人都有一個想法如何做到這一點? 感謝您的幫助。用實體框架將多個sql用戶連接到一個數據庫

+0

請仔細閱讀該網站的上如何提問幫助。這個問題太廣泛了。 –

回答

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

用戶憑據在連接字符串中指定的,所以你需要建立與登錄表單的用戶的數據提供一個連接字符串。

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); 
相關問題