2016-04-18 3 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 help –

ответ

0

Это самое можно сделать с javascript и ajax, когда выбрана опция в изменении ниспадающего сервера выполнить вызов с 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 } 
} 
Смежные вопросы