成都网站建设设计

将想法与焦点和您一起共享

GridView控件的使用-创新互联

GridView控件,用表格的形式将数据显示出来。那么如何将将数据绑定到GridView中呢?目前值学习了两种,一种是直接绑定数据源,另一种是动态显示数据(主要使用对象有SqlCommand,SqlDataAdapter,DateSet)。这里主要说一下后一种方法:

创新互联建站专注于庆元企业网站建设,成都响应式网站建设,商城建设。庆元网站建设公司,为庆元等地区提供建站服务。全流程按需策划设计,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

 private void showData(String sql)
        {
            try
            {
                //自动生成表头
                this.gridSend.AutoGenerateColumns = true;
                //这个属性是当你点击GridView中任意一个单元格时,默认选中该单元格所在行
                this.gridSend.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                //简单的数据库连接
                SqlConnection conn = new SqlConnection("server=.\\sqlexpress;database=dodoo2;uid=s1;pwd=s1");
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                SqlDataAdapter da = new SqlDataAdapter();
                cmd.Connection = conn;
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;
                da.SelectCommand = cmd;
                DataSet ds = new DataSet();
                da.Fill(ds, "lb_billflow");
                this.gridSend.DataSource = ds.Tables[0];
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message+sqlSel);
            }
        }

显示出数据后,通过CellClick()事件,获取选中行的数据,例如获取选中行中的id值:

int id = Convert.ToInt16(gridSend.CurrentRow.Cell["ID"].value);

因为在做报表,还需要将GridView打印成报表。这里我用的是GridReport工具,这里边提供了丰富的功能。可以直接做出现成的报表,在页面通过GridReport.start()显示,也可以通过编码将GridView中的值传如报表中。还是介绍后一种方法:

private void ReportFetchRecord() {
            for (int row = 0; row < gridSend.RowCount;++row )
            {
                Report.DetailGrid.Recordset.Append();
                //for循环中ColumnCount-1!如果没有-1,会抛出
                for (int col = 0; col < gridSend.ColumnCount-1; ++col)
                   Report.DetailGrid.Recordset.Fields[col + 1].AsString = gridSend.Rows[r                            ow].Cells[col].Value.ToString();
               Report.DetailGrid.Recordset.Post();
            }
        }
private void DefineReport() {
            Report.Clear();//清空报表 
            Report.Printer.PaperOrientation = GRPaperOrientation.grpoLandscape;

            //定义表头
            IGRReportHeader Reportheader = Report.InsertReportHeader();
            Reportheader.Height = 1.38;
            //插入一个静态文本框,显示报表标题文字
            IGRStaticBox StaticBox = Reportheader.Controls.Add(GRControlType.grctStaticBox).AsStaticBox;
            StaticBox.Text = "发放物品清单";
            StaticBox.Font.Point = 15;
            StaticBox.Font.Bold = true;
            StaticBox.Top = 0.40;
            StaticBox.Width = 5.64;
            StaticBox.Height = 0.58;

            //根据Gridview的列信息定义明细网络
            Report.InsertDetailGrid();
            Report.DetailGrid.ColumnTitle.Height = 0.58;
            Report.DetailGrid.ColumnContent.Height = 0.58;
            //将数据写入报表中
            IGRRecordset RecordSet = Report.DetailGrid.Recordset;
            for (int i = 0; i < gridSend.ColumnCount;++i )
            {
                string ColumnName = gridSend.Columns[i].Name;
                RecordSet.AddField(ColumnName,GRFieldType.grftString);
                double ReportColumnWidth = Convert.ToDouble(gridSend.Columns[i].Width)/50;
                Report.DetailGrid.AddColumn(ColumnName,gridSend.Columns[i].HeaderText,ColumnName,ReportColumnWidth);
            }
            
        }      
 窗体的构造函数中添加:
 Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);  
 报表的打印预览功能:Report.PrintPreview(true);

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:GridView控件的使用-创新互联
文章来源:http://chengdu.cdxwcx.cn/article/dheeep.html