首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

winform中的datagridview数据平添方式

2012-11-20 
winform中的datagridview数据添加方式winform中的datagridview数据添加方式,在我现在用的,有常用的两种,一

winform中的datagridview数据添加方式

winform中的datagridview数据添加方式,在我现在用的,有常用的两种,一种是直接绑定数据,还有就是对DataGridView添加行数据。因为winform开发的CS结果里面,没有后台行内绑定的方法,只有在bs里面才有

第一种,绑定数据源:

? DataSet ds = new DataSet();
??????????????? SqlDataAdapter adapter = new SqlDataAdapter();
??????????????? try
??????????????? {
??????????????????? gmyConn = gmyConn == null ? mySqlConnection.GetConn() : gmyConn;

??????????????????????? SqlCommand cmd = new SqlCommand(strSql, gmyConn);
??????????????????????? cmd.ExecuteNonQuery();
??????????????????????? adapter.SelectCommand = cmd;
??????????????????????? adapter.Fill(ds, "H_Children_Basic");
??????????????????????? dgvChildren.DataSource = ds.Tables[0];

???????????????????

??????????????? }
??????????????? catch (Exception ex)
??????????????? {
??????????????????? MessageBox.Show("系统故障!" + ex.Message);
??????????????????? return;
??????????????? }
这种方法,比较简单,方便,但是,有个缺点,就是,操作多个表的数据,就不是很好用了。

所以,在绑定多张表的数据的时候,我又去想了想,还有一种方法,更好用,

第二种方法,对控件DataGirdView添加行内数据

上面是绑定一个dataTable。下面的方法就是将查出来的主表,添加到一个List<T>集合里面。

然后,对其集合循环,就可以了,下面我们看看代码怎么实现吧。

?

添加集合:

? SqlCommand cmd = gmyConn.CreateCommand();
??????????????? cmd.CommandText = "select * from H_Acticle_Repertory where ActicleId='" + GoodsId + "' and ImportTime? between '"+this.dtpkStart.Value+"' and '"+this.dtpkEnd.Value+"'";
??????????????? using (SqlDataReader reader = cmd.ExecuteReader())
??????????????? {
??????????????????
??????????????????? while (reader.Read()) //循环读取数据行
??????????????????? {
??????????????????????? H_Acticle_Repertory h_acticle_rep = new H_Acticle_Repertory();
??????????????????????? h_acticle_rep.ActicleId = Convert.ToInt32(reader["ActicleId"]);
??????????????????????? h_acticle_rep.HeadName = (string)reader["HeadName"];
??????????????????????? h_acticle_rep.ImportTime = Convert.ToDateTime(reader["ImportTime"]);
??????????????????????? h_acticle_rep.ImportNum = Convert.ToInt32(reader["ImportNum"]);
??????????????????????? h_Acticle_repertorys.Add(h_acticle_rep);
??????????????????? }
??????????????? }

?

行数据添加

private void setDataGridView(string GoodsId)
??????? {
??????????? if (h_Acticle_repertorys != null)
??????????? {
??????????????? int number = 1;
??????????????? foreach (H_Acticle_Repertory h_acticle1 in getRepertoryByGoodsId(GoodsId))
??????????????? {
??????????????????? this.dgvTotal.Rows.Add(number, getGoodsByID(h_acticle1.ActicleId.ToString()).ActicleName, getGoodsByID(h_acticle1.ActicleId.ToString()).WorkShop, h_acticle1.ImportNum, h_acticle1.ImportTime, h_acticle1.HeadName);
???????????????? number++;//添加的一个序号
??????????????? }
??????????????
??????????? }
??????? }

在这里面,还可以写很多方法,返回值,就可以实现多表添加数据了。

?

?

?

热点排行