【问题标题】:SQL export to ListView using C#使用 C# 将 SQL 导出到 ListView
【发布时间】:2011-05-17 22:22:34
【问题描述】:

我有一个从 SQL 表中选择 3 列的查询,我需要将结果查询导出到列表视图中。我不需要任何关于 SQL 设置的帮助,只需要如何将其格式化为列表视图。我被卡住了。任何帮助表示赞赏。谢谢!

string sql = "select distinct pro,ds,date from dbo.Sge where date IN (select max(date) from dbo.Storage) order by project";
SqlConnection con = new SqlConnection("Data Source= ;Initial Catalog= ;Integrated Security= SSPI");
con.Open();
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(sql,con);
adapter.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
{
    for(int i=0; i< ds.Tables[0].Columns.Count; i++))
}

编辑:对不起,我最初提到了 ListBox,我的意思是 ListView。我的 ListView 很详细,我选择的每一列都有一个列,我只需要 SQL 导出到正确的列。

这是我想出的,但它不会添加到每一列,只是添加到第一列

foreach (DataRow row in poplb6ds.Tables[0].Rows)
{
    listView1.Items.Add(row["Pro"].ToString());
    listView1.Items.Add(row["size"].ToString());
    listView1.Items.Add(row["Date"].ToString());
}

【问题讨论】:

  • 我知道我需要子项目,只是不知道如何拼凑。
  • System.Windows.Forms.FormsListViewSystem.Web.UI.WebControls.ListView? WinForms 还是 ASP.NET?

标签: c# sql sql-server tsql listview


【解决方案1】:
  1. 使用using 块:

    using (SqlConnection con = new SqlConnection("Data Source=;Initial Catalog= ;Integrated Security= SSPI"))
    {
        con.Open();
        using (DataSet ds = new DataSet())
        {
            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, con))
            {
                adapter.Fill(ds);
            }    
        }
    }
    
  2. 填单表:

    DataTable dt = new DataTable(); // new DataTable("Sge"); name it if will be required
    adapter.Fill(dt);
    
  3. 你的循环没有意义,因为表中每一行的列都是相同的:

    foreach (DataColumn column in dt.Columns)
    {
    }
    
  4. 或者你想遍历每一行每一列?

    foreach (DataColumn column in dt.Columns)
    {
        foreach (DataRow row in dt)
        {
            object value = row[column];
        }
    }
    

【讨论】:

    【解决方案2】:
    【解决方案3】:

    以下假设您的 ListView 具有按 |Pro|Size|Date| 顺序排列的列

    foreach (DataRow row in poplb6ds.Tables[0].Rows) {
        ListViewItem item = new ListViewItem(row["Pro"].ToString());
        item.SubItems.Add(row["size"].ToString());
        item.SubItems.Add(row["Date"].ToString());
        listView1.Items.Add(item);
    }
    

    【讨论】:

      【解决方案4】:

      标准解决方案是:listbox1.DataSource = poplb6ds; 如果您需要任何特定格式,请详细说明。

      【讨论】:

      • 我有一个详细的视图,其中每个都需要进入我的列表视图的适当列表,我很抱歉,我正在使用列表视图
      猜你喜欢
      • 1970-01-01
      • 2020-11-10
      • 2012-05-16
      • 2010-12-31
      • 1970-01-01
      • 2016-05-27
      • 2014-05-26
      • 2017-11-26
      • 2014-11-24
      相关资源
      最近更新 更多