Beispiel #1
0
        private void recordset_Load(object sender, EventArgs e)
        {
            //Form1 form1 = new Form1();
            Dataset       dataset       = nowdata.getDataset();
            DatasetVector datasetvector = (DatasetVector)dataset as DatasetVector;
            Recordset     recordset     = datasetvector.GetRecordset(false, CursorType.Dynamic);
            Object        value         = recordset.GetValues();//获取字段

            //设置属性
            listView1.GridLines      = true;         //显示网格线
            listView1.FullRowSelect  = true;         //显示全行
            listView1.MultiSelect    = false;        //设置只能单选
            listView1.View           = View.Details; //设置显示模式为详细
            listView1.HoverSelection = true;         //当鼠标停留数秒后自动选择

            //填充表头
            int minlength = 60;

            listView1.Columns.Add("序号", minlength);
            for (int i = 0; i < datasetvector.FieldCount; i++)
            {
                listView1.Columns.Add(datasetvector.FieldInfos[i].Name, minlength);  //相当于上面的添加列名的步骤
            }
            //填充数据
            recordset.MoveFirst();
            this.listView1.BeginUpdate();  //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度
            for (int i = 0; i < recordset.RecordCount; i++)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = i.ToString();
                for (int j = 0; j < datasetvector.FieldCount; j++)
                {
                    String info;
                    if (recordset.GetFieldValue(j) != null)
                    {
                        info = recordset.GetFieldValue(j).ToString();
                    }
                    else
                    {
                        info = "null";
                    }
                    lvi.SubItems.Add(info);
                }
                this.listView1.Items.Add(lvi);
                recordset.MoveNext();
            }
            this.listView1.EndUpdate();  //结束数据处理,UI界面一次性绘制。
        }