2017-03-08 52 views
0
protected void CompanyDropDown_Click(object sender, EventArgs e) 
{ 
    string connectionString = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString; 
    using (SqlConnection cn = new SqlConnection(connectionString)) 
    { 
     SqlCommand cmd = new SqlCommand("[dropdownCompany]", cn); 
     cn.Open(); 
     CompanyDropDown.DataSource = cmd.ExecuteReader(); 
     CompanyDropDown.DataBind(); 
    } 
} 

存儲過程dropdownCompany只是一列與公司名稱列表。C#下拉列表Web窗體ASP.NET SQL不填充

出於某種原因,當我執行Web窗體時,這並不是填充下拉菜單。

+0

您是否嘗試過在SQL Server Management Studio中執行存儲過程以查看是否存在實際返回的數據? – maccettura

+0

是的存儲過程填充結果在sql server管理工作室 – RA19

回答

1

結合之前,指定下拉DataTextFieldDataValueField

DataTextFieldDataValueField應該是執行存儲過程後得到的結果集中列的名稱。

您應該指定哪個字段在下拉菜單中對用戶可見。這將是您的DataTextField

DataValueField對用戶不可見。但是當您根據下拉菜單中的選定項目執行其他操作時,您將需要此值。

CompanyDropDown.DataTextField = "Name"; 
CompanyDropDown.DataValueField = "ID"; 
CompanyDropDown.DataBind(); 
+0

仍然沒有工作 – RA19

+0

這是存儲在我的SQL過程: SELECT DISTINCT companyid,公司名稱從公司 – RA19

+0

你改變從'Name'的價值觀和'ID'爲'companyname'和'companyid'? – maccettura

0

你必須設置你的SqlCommand對象的CommandType屬性CommandType.StoredProcedure

protected void CompanyDropDown_Click(object sender, EventArgs e) 
{ 
    string connectionString = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString; 
    using (SqlConnection cn = new SqlConnection(connectionString)) 
    { 
     SqlCommand cmd = new SqlCommand("[dropdownCompany]", cn); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cn.Open(); 
     CompanyDropDown.DataSource = cmd.ExecuteReader(); 
     CompanyDropDown.DataBind(); 
    } 
} 
+0

我也加了這一行: cmd.CommandType = CommandType.StoredProcedure; – RA19

+0

仍然沒有工作 – RA19