在下拉列表中,所有值都显示在列中。只需要一个时间值

问题描述:

DropDownList一次只需要一个值。在下拉列表中,所有值都显示在列中。只需要一个时间值

这是我的代码:

SqlConnection con = new SqlConnection("data source=.;initial catalog=Rupesh;integrated security=true"); 
SqlCommand cmd; 
SqlDataAdapter da; 
string query; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     con.Open(); 

     query = "select * from vendor"; 

     cmd = new SqlCommand(query, con); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      DropDownList1.Items.Add(dr[4].ToString()); 

     } 

     con.Close(); 

     vendordetails(); 
    } 
} 

private void vendordetails() 
{ 
    try 
    { 
     con.Open(); 

     query = "select * from vendor"; 

     cmd = new SqlCommand(query, con); 

     da = new SqlDataAdapter(cmd); 

     DataSet ds = new DataSet(); 
     da.Fill(ds); 

     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
    } 
    catch (Exception ex) 
    { 
     Response.Write(ex.Message); 
    } 
} 
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    try 
    { 
     con.Open(); 

     query = "select * from vendor where vendor_name='" + DropDownList1.SelectedItem.ToString() + "'"; 

     cmd = new SqlCommand(query, con); 

     da = new SqlDataAdapter(cmd); 

     DataSet ds = new DataSet(); 
     da.Fill(ds); 

     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
    } 
    catch (Exception ex) 
    { 
     Response.Write(ex.Message); 
    } 
} 
+0

提供更多细节什么显示和预期的结果类型。它有点不清楚你在说什么。 – C4u

而不是使用

"select * from vendor" 

使用类似

"select [columnname] from vendor" 

替换[列名]同列的名称要显示。

*可以从数据库的所有列中获取所有值。

我想,而不是

if (!IsPostBack) 
{ 
    query = "select * from vendor"; 
} 

你需要

if (!IsPostBack) 
{ 
    query = "select distinct vendor_name from vendor"; 
} 
+0

很难说他在做什么,但有人希望供应商表中的行将是唯一的无论如何:) – AntDC

+0

是的,我期望它是如此,但你知道世界是如何:) –

+0

一个案例可能是他试图填补基于名称的网格。所以可能会有同名的供应商,所以他可能会试图让所有的供应商都知道。只是一个疯狂的猜测。 –

现在我假设,当你从下拉菜单中选择一个供应商了,你想看到在网格中的供应商的详细信息。

你似乎为期不远了......

调整你的PROC vendordetails()是.............

private void vendordetails(string vendorName = "") 
{ 
    try 
    { 
     con.Open(); 
     query = String.Format("select * from vendor where vendor_name = \'{0}\'", vendorName); 
     cmd = new SqlCommand(query, con); 
     da = new SqlDataAdapter(cmd); 

     DataSet ds = new DataSet(); 
     da.Fill(ds); 

     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
    } 
    catch (Exception ex) 
    { 
     Response.Write(ex.Message); 
    } 
} 

然后在DropDownList1_SelectedIndexChanged只是有...

vendordetails(DropDownList1.SelectedItem.Text) 
+0

谢谢。现在它正在工作。 –

+0

如果它有效,您可以标记为答案;) – AntDC