一段代码如下,在dataGridView里插入数据,但是为什么不显示呢,搞不懂,哪位能指点下呢?谢谢
另外一个问题,我明明插入的是一行数据,为什么会是有2行,而且是空的? DataTable tbl = new DataTable("Result");
DataColumn dc = null;
dc = tbl.Columns.Add("ID", Type.GetType("System.Int32"));
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.AllowDBNull = false; dc = tbl.Columns.Add("Product", Type.GetType("System.String"));
dc = tbl.Columns.Add("Version", Type.GetType("System.String"));
dc = tbl.Columns.Add("Description", Type.GetType("System.String")); DataRow row;
row = tbl.NewRow();
row["Product"] = "Knife";
row["Version"] = "2.0";
row["Description"] = "Prepare for fight!";
tbl.Rows.Add(row); dataGridView1.Columns.Add("Product", "Product");
dataGridView1.Columns.Add("Version", "Version");
dataGridView1.Columns.Add("Description", "Description");
dataGridView1.DataSource = tbl;
另外一个问题,我明明插入的是一行数据,为什么会是有2行,而且是空的? DataTable tbl = new DataTable("Result");
DataColumn dc = null;
dc = tbl.Columns.Add("ID", Type.GetType("System.Int32"));
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.AllowDBNull = false; dc = tbl.Columns.Add("Product", Type.GetType("System.String"));
dc = tbl.Columns.Add("Version", Type.GetType("System.String"));
dc = tbl.Columns.Add("Description", Type.GetType("System.String")); DataRow row;
row = tbl.NewRow();
row["Product"] = "Knife";
row["Version"] = "2.0";
row["Description"] = "Prepare for fight!";
tbl.Rows.Add(row); dataGridView1.Columns.Add("Product", "Product");
dataGridView1.Columns.Add("Version", "Version");
dataGridView1.Columns.Add("Description", "Description");
dataGridView1.DataSource = tbl;
解决方案 »
- 关于visio二次开发。
- 如何判断日期处在第几周,,加急...............
- [Regex]匹配分组 - 2
- 如何才能把我在非技术社区获得的分拿到技术社区来用,我的分总是不够用,刚得点小分马上就用完了,我非技术社区的分到是挺多的就是不知道怎
- 我想知道如何判断打印机的缺纸状态,以及当中的打印任务是否完成还是卡纸这类情况
- c#做Windows服务的问题,大侠帮忙!!!
- 请问:怎么把一个数据集DataSet 传给水晶报表
- 如何把Windws Form下的datagrid的一列变成下拉combobox的样式?
- 如何判断一个文件是否存在?
- 以前没有用过asp现在在看asp+,我用下面的代码把一些中文字段插入数据库得到的都是?,请问我如和进行字符集转换
- datagridview 为什么总只能选择一行?
- 修改带有外码约束的字段值
DataTable tbl = new DataTable("Result");
DataColumn dc = null;
dc = tbl.Columns.Add("ID", Type.GetType("System.Int32"));
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.AllowDBNull = false; dc = tbl.Columns.Add("Product", Type.GetType("System.String"));
dc = tbl.Columns.Add("Version", Type.GetType("System.String"));
dc = tbl.Columns.Add("Description", Type.GetType("System.String")); DataRow row;
row = tbl.NewRow();
row["Product"] = "Knife";
row["Version"] = "2.0";
row["Description"] = "Prepare for fight!";
tbl.Rows.Add(row); DataSet ds=new DataSet();
ds.Table.Add(tbl);
dataGridView1.DataSource = ds; dataGridView1.DataBind();
//第一次
dataGridView1.Columns.Add("Product", "Product");
dataGridView1.Columns.Add("Version", "Version");
dataGridView1.Columns.Add("Description", "Description");
//第二次
dataGridView1.DataSource = tbl;
实际 添加两次 但是没绑定
DataColumn dc = null;
dc = tbl.Columns.Add("ID", Type.GetType("System.Int32"));
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.AllowDBNull = false; dc = tbl.Columns.Add("Product", Type.GetType("System.String"));
dc = tbl.Columns.Add("Version", Type.GetType("System.String"));
dc = tbl.Columns.Add("Description", Type.GetType("System.String")); DataRow row;
row = tbl.NewRow();
row["Product"] = "Knife";
row["Version"] = "2.0";
row["Description"] = "Prepare for fight!";
tbl.Rows.Add(row); dataGridView1.Columns.Add("Product", "Product");
dataGridView1.Columns.Add("Version", "Version");
dataGridView1.Columns.Add("Description", "Description");
dataGridView1.DataSource = tbl;
dataGridView1.databind();
第二行是NewRow,用于输入。把 AllowUserToAddRows 设为 false 可以去掉NewRow
DataColumn dc = null;
dc = tbl.Columns.Add("ID", Type.GetType("System.Int32"));
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.AllowDBNull = false; dc = tbl.Columns.Add("Product", Type.GetType("System.String"));
dc = tbl.Columns.Add("Version", Type.GetType("System.String"));
dc = tbl.Columns.Add("Description", Type.GetType("System.String")); DataRow row;
row = tbl.NewRow();
row["Product"] = "Knife";
row["Version"] = "2.0";
row["Description"] = "Prepare for fight!";
tbl.Rows.Add(row); //dataGridView1.Columns.Add("Product", "Product");
//dataGridView1.Columns.Add("Version", "Version");
//dataGridView1.Columns.Add("Description", "Description");
//这三句应该不需要,四楼说的那样,添加应该成功的,可能跑后面去了。就直接写DataGridView.datasource = Datatable就行 dataGridView1.DataSource = tbl;
我最近一直在写这方面的问题,只要你的Datatable有值,只要最后一句的代码就必然能显示,还有一些关于显示的行名和列名的问题,需要的话可以再说。
哎,我遇到的问题比你严重啊,我要显示的Datatable共有168行*53列,采用datasource的方法赋值,显示倒是没问题,就是很慢很慢啊……这样一个8000来个数据的表用DataGridView显示居然要7-8秒钟啊……?!
DataTable tbl = new DataTable("Result");
DataColumn dc = null;
dc = tbl.Columns.Add("ID", Type.GetType("System.Int32"));
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.AllowDBNull = false; dc = tbl.Columns.Add("Product", Type.GetType("System.String"));
dc = tbl.Columns.Add("Version", Type.GetType("System.String"));
dc = tbl.Columns.Add("Description", Type.GetType("System.String")); DataRow row;
row = tbl.NewRow();
row["Product"] = "Knife";
row["Version"] = "2.0";
row["Description"] = "Prepare for fight!";
tbl.Rows.Add(row); dataGridView1.Columns.Add("Product", "Product");
dataGridView1.Columns.Add("Version", "Version");
dataGridView1.Columns.Add("Description", "Description"); dataGridView1.Columns["Product"].DataPropertyName = "Product";
dataGridView1.Columns["Version"].DataPropertyName = "Version";
dataGridView1.Columns["Description"].DataPropertyName = "Description"; dataGridView1.AllowUserToAddRows = false;
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = tbl;