c# winform datagridview不显示数据,用的循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winform datagridview不显示数据,用的循环相关的知识,希望对你有一定的参考价值。

代码如下
private void UserForm_Load(object sender, EventArgs e)

DataBase db = new DataBase();
DataSet ds = new DataSet();
if (!db.databaseconn())

MessageBox.Show("database error!");
return;

string selectUserSql = "select ID,username,userpassword,anothername,type,remarks from Users";
OleDbDataAdapter sda = new OleDbDataAdapter(selectUserSql, db.getconn());
sda.Fill(ds);
DataTable dtSelectUser = ds.Tables[0];

for (int i = 0; i < dtSelectUser.Rows.Count; i++)

int iID = int.Parse(dtSelectUser.Rows[i]["ID"].ToString());
string strUserName = dtSelectUser.Rows[i]["username"].ToString();
string strUserPwd = dtSelectUser.Rows[i]["userpassword"].ToString();
string strAnotherName = dtSelectUser.Rows[i]["anothername"].ToString();
string strType = dtSelectUser.Rows[i]["type"].ToString();
string strRemarks = dtSelectUser.Rows[i]["remarks"].ToString();
this.dataGridView1.Rows.Add(iID, strUserName, strUserPwd, strAnotherName, strType, strRemarks);

参考技术A OleDbDataAdapter sda = new OleDbDataAdapter(selectUserSql, db.getconn());
sda.Fill(ds);
this.dataGridView1.DataSource = ds.Tables[0];

追问

这个我知道,我想知道这个错在哪里,

追答

你的datagridview有表头没有呢?

追问

似乎木有,怎么绑定标题行啊- -。

追答

dataGridView.Columns.Add("columnName", "columnHeadText");

参考技术B 用一个datatable来存在你需要显示的数据,然后this.dataGridView1.DataSource=datatable即可;别直接用this.dataGridView1去增加行

db_BoxWork = new DataTable();
db_BoxWork.Columns.Add("列1");
DataRow dRow = db_BoxWork.NewRow();
dRow[0] = "累计数";
for (int k =0; k <DiffDay; k++)

db_BoxWork.Columns.Add(dstart.AddDays(k).ToString("M-d"));
string strStartTime = dstart.AddDays(k).ToString("yyyy-MM-dd") + " " + strTime;
string strEndTime = dstart.AddDays(k + 1).ToString("yyyy-MM-dd") + " " + strTime;
string strNum = Utility.SqlHelper.ExecuteString("select count(*) from working where datediff(s,passtime,'" + strStartTime + "')<=0 and datediff(s,passtime,'" + strEndTime + "')>=0 and " + GetWhere());
dRow[k + 1] = strNum;

db_BoxWork.Rows.Add(dRow);

GridView1.DataSource = db_BoxWork;
GridView1.DataBind();追问

没看懂你的 - -

追答

我是复制了一段我一个项目中的代码,但处理跟你要实现的是一样的,简单的讲,建立一个新的datatable用来按照你显示的格式存储你查询出来的结果,然后跟this.dataGridView1绑定即可。

参考技术C 最下面循环那个地方验证有值吗?在for循环最后一行add后面加一个打印 dataGridView的数据行数,看每一次是不是行都增加了,如果是的话,那说明你的数据加进去了,就是界面方面没显示。
标题行看看有没有问题。追问

界面运行出来时这样- -。木有表头

追答

就像停用一样可能需要表头。你点gridview右上角小箭头里面有addcolumn添加表头,然后看看。

C# winform 如何用datagridview增、删、改数据

单击右击菜单“添加”,就可把在datagridview中添加的数据添加到数据库。同理实现单击“修改“、”删除“的功能。

参考技术A datagridview控件中的编辑、删除、更新事件里写相应的代码。当然首先得启用它的这些功能。

以上是关于c# winform datagridview不显示数据,用的循环的主要内容,如果未能解决你的问题,请参考以下文章

c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决

c# winform datagridview怎么能达到如图的效果

C# winform 如何用datagridview增、删、改数据

winform c# Datagridview 选中行 急!!!

通过 TextBox(C#、WinForms)过滤空 DataGridView

C# winform DatagridView 的简单操作