2015-12-01 74 views
0

我有一个下拉菜单与买家列表,我试图根据用户在下拉列表中选择将sql查询结果绑定到列表视图。下面是代码,但是listview完全不显示。基于下拉列表选择在列表视图中显示sql结果

protected void DropDownListSearchByBuyer_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Web_FussConnectionString"].ConnectionString); 

     SqlCommand cmd = new SqlCommand("SELECT Team_Name FROM Team WHERE Team_ID = @Team_ID", con); 
     cmd.Parameters.AddWithValue("@Team_ID", DropDownListSearchByBuyer.Text); 
     con.Open(); 



     var reader = cmd.ExecuteReader(); 

     ListView1.DataSource = reader; 
     ListView1.DataBind(); 

    } 

列表视图代码

<asp:ListView ID="ListView1" runat="server"> 
    </asp:ListView> 
+1

,能得到任何异常后?你的列表视图设计代码在哪里? –

+0

我没有得到任何异常,它加载正常。请参阅上面的编辑列表视图代码 – Haldamir

+0

放置一个断点并逐步查看您是否从数据库中获得任何值 – Izzy

回答

0

在列表视图添加ItemTemplate中用于显示栏等下方。

<asp:ListView ID="ListView1" runat="server"> 
    <ItemTemplate> 
      <span><%# Eval("Team_Name") %><span> 
    </ItemTemplate> 
</asp:ListView> 

更多细节请参见文章:https://msdn.microsoft.com/en-us/library/bb398790.aspx

+0

不幸的是没有修复它。仍然不加载列表视图。 – Haldamir

+0

检查你的阅读器变量是否包含任何数据? –

0
void SetListView() 
    { 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Web_FussConnectionString"].ConnectionString); 

     SqlCommand cmd = new SqlCommand("SELECT Team_Name FROM Team WHERE Team_ID = @Team_ID", con); 
     cmd.Parameters.AddWithValue("@Team_ID", DropDownListSearchByBuyer.Text); 
     con.Open(); 
     var reader = cmd.ExecuteReader(); 
     var readerdata = GetReaderData(reader); 
     reader.Close(); 
     reader = null; 
     con.Close(); 
     con = null; 

     ListView1.DataSource = readerdata; 
     ListView1.DataBind(); 
    } 

    DataTable GetReaderData(IDataReader reader) 
    { 
     DataTable dtSchema = reader.GetSchemaTable(); 
     DataTable readerData = new DataTable(); 

     if (dtSchema == null) 
     { 
      return readerData; 
     } 

     for (int i = 0; i < dtSchema.Rows.Count; i++) 
     { 
      DataColumn dc = new DataColumn(); 
      dc.ColumnName = dtSchema.Rows[i]["ColumnName"].ToString(); 
      readerData.Columns.Add(dc); 
     } 


     while (reader.Read()) 
     { 
      DataRow dr = readerData.NewRow(); 

      for (int i = 0; i < readerData.Columns.Count; i++) 
      { 
       dr[readerData.Columns[i].ColumnName] = reader[readerData.Columns[i].ColumnName]; 
      } 
      readerData.Rows.Add(dr); 
     } 

     return readerData; 
    } 

始终Close阅读器读取数据

相关问题