访问C#中索引9上方的Listview索引?

访问C#中索引9上方的Listview索引?,c#,winforms,listview,C#,Winforms,Listview,我有一个Listview控件,它显示有12列的数据。从第1列到第9列显示,但在第9列以上,即使提供了索引号,也不显示数据 查看下面的代码,该代码包含所有列的索引。另见上图: public void populateProductList() { string cmdString = "SELECT * FROM PRODUCT"; StockDbConnection dbcon = new StockDbConnection(); SqlCeConnection Co

我有一个Listview控件,它显示有12列的数据。从第1列到第9列显示,但在第9列以上,即使提供了索引号,也不显示数据

查看下面的代码,该代码包含所有列的索引。另见上图:

public void populateProductList()
{
    string cmdString = "SELECT * FROM PRODUCT";

    StockDbConnection dbcon = new StockDbConnection();
    SqlCeConnection Conn = new SqlCeConnection(dbcon.ReturnConnection("ConnString"));
    SqlCeCommand cmd = new SqlCeCommand(cmdString, Conn);
    try
    {
        Conn.Open();

        SqlCeDataReader dr = cmd.ExecuteReader();
        lstvwProduct.Items.Clear();
        while(dr.Read())
        {
            ListViewItem obj=new ListViewItem();    
            obj.SubItems[0].Text = dr[0].ToString(); 
            obj.SubItems.Add(dr[1].ToString());
            obj.SubItems.Add(dr[2].ToString());
            obj.SubItems.Add(dr[3].ToString());
            obj.SubItems.Add(dr[4].ToString());
            obj.SubItems.Add(dr[5].ToString());
            obj.SubItems.Add(dr[6].ToString());
            obj.SubItems.Add(dr[7].ToString());
            obj.SubItems.Add(dr[8].ToString());
            obj.SubItems.Add(dr[9].ToString());
            obj.SubItems.Add(dr[10].ToString());
            obj.SubItems.Add(dr[11].ToString());

            //in object of ListViewItem give display member at first and give value member at second position 
            lstvwProduct.Items.Add(obj);

            // add object to the listbox
        }
    }
    catch (Exception exp)
    {
        MessageBox.Show(exp.Message);
    }
}

问题是:索引10和11没有显示,我已经有了它们的列集合。

您只需将一个数据集分配给Gridview的datasource属性即可。 这对你会更有帮助

        public void populateProductList()
        {
            string cmdString = "SELECT * FROM PRODUCT";

            StockDbConnection dbcon = new StockDbConnection();
            SqlCeConnection Conn = new SqlCeConnection(dbcon.ReturnConnection("ConnString"));
            SqlCeCommand cmd = new SqlCeCommand(cmdString, Conn);
            DataSet ds;
            try
            {
                Conn.Open();

                SqlCeDataAdapter da = new SqlCeDataAdapter(cmdString, Conn);
                da.fill(ds);
                lstDGView.DataSource=ds;

            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }

在添加obj之后,你试过调试lstvwProduct吗?我支持@Joseph的说法,试着调试,逐行检查索引9-11是否有值。也许你甚至可以尝试一些直接的命令,比如
dr
的大小/计数/长度。问题是没有显示最后两列。@Melvin是的,我发现dr[10]和dr[11]有一个数据,我用messageBox.show(dr[10].toString())对其进行了检查,我认为问题出在listview索引上。如果dr[10]和dr[11]放在dr[1]下面,请执行dr[10]和dr[11]work??Listview的数据源未处于活动状态为什么?@NurSelam您可以尝试使用Datagrid view吗?