
//
var d= new DataTable()
//想加几个列就加几个列。
d.Columns.Add("a")
d.Columns.Add("b")
d.Columns.Add("c")
//相加几个行就加几个行
//每行可以满员,也可以个别字段没有值(比如这里的c)
var r = d.NewRow()
r["a"] = 1
r["b"] = 2
d.Rows.Add(r)
//数据的类型也可以随意整,不限制
var r2 = d.NewRow()
r2["a"] = "wakaka"
r2["c"] = 2
d.Rows.Add(r2)
//绑定上去
dataGridView1.DataSource = d
你的 dataGridView1.DataSource = ds.Tables[0]DataSource 指向一个Table。然后直接dataGridView1["cjyf",i].Value =cjyf.ToString()赋值给dataGridView1,就相当于是表面赋值,dataGridView1指向的数据源并没更新。查询的时候应该是查询dataGridView1.DataSource的数据,所以你更新应该更新Table,然后dataGridView1.DataSource 指向你更新的Table,查看表时应该就能看到了。一切均为我个人猜想,有待验证,不敢确定。
在datagridview上显示行号1,先在加入如下代码
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
Rectangle rectangle = new Rectangle(e.RowBounds.Location.X,
e.RowBounds.Location.Y,
dataGridView1.RowHeadersWidth - 4,
e.RowBounds.Height)
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
dataGridView1.RowHeadersDefaultCellStyle.Font,
rectangle,
dataGridView1.RowHeadersDefaultCellStyle.ForeColor,
TextFormatFlags.VerticalCenter | TextFormatFlags.Right)
}
2,然后再在From1.Designer.cs文件中加入如下代码,就行了。
this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)