簡體   English   中英

ASP.NET MVC 5 DropDownList selectedindexchanged

[英]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")

當服務器下拉列表更改中的選定選項用ajax調用控制器中的某個操作時,該操作最多可通過javascriptajax完成,該操作返回一個帶有下拉列表的PartialView ,下拉列表中填充了所選服務器的數據庫列表。

使用上面的代碼,將列出所有可用的服務器,因為

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM