2016-04-18 116 views
0

我想選擇一個服務器,並只獲取服務器的數據庫名稱選擇,但在此代碼..給我所有服務器的所有數據庫!請問有什麼解決辦法?ASP.NET MVC 5 DropDownList selectedindexchanged

控制器

List<SelectListItem> allServer = new List<SelectListItem>(); 
List<SelectListItem> alldatabases = new List<SelectListItem>(); 
allServer.Add(new SelectListItem() { Text = "Please Select DataBase...", Value = "", Selected = true }); 
System.Data.Sql.SqlDataSourceEnumerator instance = System.Data.Sql.SqlDataSourceEnumerator.Instance; 
System.Data.DataTable dt = instance.GetDataSources(); 
List<string> ddlInstances = new List<string>();  
foreach (DataRow dr in dt.Rows) 
{ 
    dr["InstanceName"])); 
    ServerConnection Conn; 
    Conn = new ServerConnection(); 
    Conn.ServerInstance = string.Concat(dr["ServerName"], "\\", dr["InstanceName"]); 
    allServer.Add(new SelectListItem() { Text = Conn.ServerInstance, Value = Conn.ServerInstance, Selected = true }); 
    Server Ser = new Server(Conn); 
    foreach (Database db in Ser.Databases) 
    { 
     alldatabases.Add(new SelectListItem() { Text = db.Name, Value = db.Name, Selected = false }); 
    } 

查看

@using (Html.BeginForm("Index", "Connect", FormMethod.Get)) 
{ 
    Server Names 
    @Html.DropDownList("SerNames") 

    DB Names 
    @Html.DropDownList("DBNames") 
+0

我想選擇一臺服務器,並獲得該服務器的數據庫名稱,但在這段代碼中,我得到的所有服務器的所有數據庫,該如何解決? –

+0

編輯你的問題,解釋問題(不在評論中) –

+0

done!,plz幫助 –

回答

0

這大部分與javascriptajax,當在服務器下拉菜單改變所選擇的選項撥打電話與ajax控制器中的一個動作做到了返回一個PartialView,其下拉列表中填充了所選服務器的數據庫列表。

+0

是的,我認爲用JavaScript和AJAX完成,但我不知道如何? –

0

使用你的代碼上面,這會列出所有可用的服務器,因爲

System.Data.Sql.SqlDataSourceEnumerator.Instance 

獲取System.Data.Sql.SqlDataSourceEnumerator的一個實例,可用於檢索有關可用SQL Server的信息實例。

所以,如果你想只有一個SQL Server實例,你必須把一些條件來獲取迭代的一個實例。例如,」

foreach (DataRow dr in dt.Rows) 
{ 
    if(!dr["InstanceName"]=="YourInstanceName"){ continue;} else {//Do you thing } 
}