DataTable table = new DataTable();
table = db.selectTable(DBName, TableName);
for (int a = 0; a < table.Columns.Count; a++)
{
dataGridView1.Columns[a].DataPropertyName = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].HeaderText = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].Visible = true;
}
dataGridView1.DataSource = table.DefaultView;
数据库中列名是中文。
在绑定数据后,dataGridView1中不显示数据,但是设置短点监视发现后数据,不知为何,求解答~
table = db.selectTable(DBName, TableName);
for (int a = 0; a < table.Columns.Count; a++)
{
dataGridView1.Columns[a].DataPropertyName = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].HeaderText = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].Visible = true;
}
dataGridView1.DataSource = table.DefaultView;
数据库中列名是中文。
在绑定数据后,dataGridView1中不显示数据,但是设置短点监视发现后数据,不知为何,求解答~
dataGridView1.DataSource = table;
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "a";
table = db.selectTable(DBName, TableName);
for (int a = 0; a < table.Columns.Count; a++)
{
dataGridView1.Columns[a].DataPropertyName = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].HeaderText = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].Visible = true;
}
dataGridView1.DataSource = table.DefaultView;
dataGridView1.DataBind();
试试看。。
table = db.selectTable(DBName, TableName);
dataGridView1.AutoGenerateColumns = false;
for (int a = 0; a < table.Columns.Count; a++)
{
dataGridView1.Columns.Add(table.Columns[a].ColumnName.ToString(), table.Columns[a].ColumnName.ToString());
dataGridView1.Columns[a].DataPropertyName = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].HeaderText = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].Visible = true;
}
dataGridView1.DataSource = table.DefaultView;
for (int a = 0; a < table.Columns.Count; a++)
{
dataGridView1.Columns[a].DataPropertyName = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].HeaderText = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].Visible = true;
}
{里面写show()函数}
下面定义个show()函数就可以了!
show什么呢??能不能说详细点呢??麻烦了!我有怀疑的DataGridView没有刷新的问题,但是WinFrom中不是不需要刷新吗!
循环都完成了,我监视dataGridView1.Rows[1].Cell[1].Value中是有数据的
只要table里面有数据,就一定会显示的.
我之前也没有加For的
table = db.selectTable(DBName, TableName);
dataGridView1.DataSource = table.DefaultView;
不设置列头,直接绑定数据源。。
DataTable table = new DataTable();
table = db.selectTable(DBName, TableName);
if(table.Columns.Count>0)
{
dataGridView1.DataSource = table;
dataGridView1.AutoGenerateColumns = true;
dataGridView1.Columns[a].DataPropertyName = "ColumnName";//这个你应该知道是什么字段名称啊 直接填字段名称就好了吧!
dataGridView1.Columns[a].HeaderText = "ColumnName";
dataGridView1.Columns[a].Visible = true;
}
for (int a = 0; a < table.Columns.Count; a++)
{
dataGridView1.Columns[a].DataPropertyName = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].HeaderText = table.Columns[a].ColumnName.ToString();
dataGridView1.Columns[a].Visible = true;
}
首先应该初始化列的数目:for (int m = 0; m < dataSet.Tables[0].Columns.Count; m++)
{
myDataGridView.Columns.Add(dataSet.Tables[0].Columns[m].ToString(),
dataSet.Tables[0].Columns[m].ToString());
} 接下来是绑定下面的值了:foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
myDataGridView.Rows.Add(); //DataGridView在录入数据之前,需要首先增加自己的行的数量
int i = myDataGridView.Rows.Count; //获取DataGridView当前行数
object[] itemArray = dataRow.ItemArray; //获取dataRow的所有的单元格里的数据Array
//将dataRow的单元格数组数据一一填充到DataGridViewRow的Cell中
for (int j = 0; j < itemArray.Length; j++)
{
myDataGridView.Rows[i - 1].Cells[j].Value = itemArray[j].ToString();
}
} 如果我们需要多次刷新并显示该DataGridViewmyDataGridView.Rows.Clear();
myDataGridView.Columns.Clear();
myDataGridView.Refresh();
{
new DataCon {Name = "dataA", Description = "DesA"},
new DataCon {Name = "dataB", Description = "DesB"}
}; var dataTable = new DataTable();
dataTable.Columns.Add(new DataColumn("Name"));
dataTable.Columns.Add(new DataColumn("Description")); var row1 = dataTable.NewRow();
row1["Name"] = "dataA";
row1["Description"] = "DesA"; var row2 = dataTable.NewRow();
row2["Name"] = "dataB";
row2["Description"] = "DesB";
dataTable.Rows.Add(row1);
dataTable.Rows.Add(row2); dataGridView1.DataSource = dataTable;
dataGridView1.AutoGenerateColumns = false;
internal class DataCon
{
public string Name { get; set; }
public string Description { get; set; }
}
简单绑定了一下 绑定 list 绑定 table 都能显示 测试过了 lz 弄个简单的 试试 一点点发现问题
dataGridView1.Rows[0].Cells[0].Value = "1";
我这样做,前台依然不显示数据
给datagridview 加一个列 叫 名字叫 “测试”测试 设置 datapropertyname 为“123”
===
后台代码不变。。只是手动添加一个 SQL语句中没有的 字段 列
DataTable dtTmp = new DataTable();
DataRow drTmp = dtTmp.NewRow();
DataColumn dcTmp = new DataColumn("id", typeof(string));
dtTmp.Columns.Add(dcTmp);
dcTmp = new DataColumn("name", typeof(string));
dtTmp.Columns.Add(dcTmp);
dcTmp = new DataColumn("age", typeof(string));
dtTmp.Columns.Add(dcTmp);
dcTmp = new DataColumn("gender", typeof(string));
dtTmp.Columns.Add(dcTmp); for (int i = 0; i < 10; i++)
{
drTmp = dtTmp.NewRow();
dtTmp.Rows.Add(drTmp);
dtTmp.Rows[i]["id"] = i.ToString();
dtTmp.Rows[i]["name"] = "a" + i.ToString();
dtTmp.Rows[i]["age"] = i.ToString();
dtTmp.Rows[i]["gender"] = i % 2 == 0 ? "男" : "女";
}
for (int a = 0; a < dtTmp.Columns.Count; a++)
{
this.dataGridView1.Columns.Add(dtTmp.Columns[a].ColumnName.ToString(),dtTmp.Columns[a].ColumnName.ToString());
//dataGridView1.Columns[a].DataPropertyName = ;
//dataGridView1.Columns[a].HeaderText = ;
dataGridView1.Columns[a].Visible = true;
}
dataGridView1.DataSource = dtTmp.DefaultView;
dgv.DataMember = ds.Tables[0].TableName;
dgv.AutoGenerateColumns=true;
dgv.DataMember = ds.Tables[0].TableName;
dgv.AutoGenerateColumns=true;