读书人

c#datagridview 添加行解决办法

发布时间: 2013-01-22 10:23:54 作者: rapoo

c#datagridview 添加行

string InName ;//一个每次单击传入的量 ,每次单击传入的都不一样
private void buttonAdd_Click(object sender, EventArgs e)
{
sqlDnn.con.Open();
string sql = "SELECT CN_GUID,CN_S_NAME FROM TN_SYS_FILE_CLASS WHERE CN_S_NAME = '" + InName + "'";
try
{
SqlDataAdapter tableFunction = new SqlDataAdapter(sql, sqlDnn.con); //查询数据
DataSet ds = new DataSet();
tableFunction.Fill(ds, "TN_SYS_FILE_CLASS");
dataGridViewPart.DataSource = ds.Tables["TN_SYS_FILE_CLASS"];
}
catch (Exception)
{
MessageBox.Show("载入部门列表失败!");
this.Close();
throw;
}

但这样,每次单击只能显示一行数据,后面的数据总会覆盖前面的数据,请教,怎么使前面的数据不被覆盖,
一行一行的添加,, datagridview c#
[解决办法]
dataGridViewPart.DataSource = ds.Tables["TN_SYS_FILE_CLASS"];每次都改变了
如果你想保留原来的数据 查询后 插入到已有的数据里
[解决办法]
查询得到的一个表。把里面的数据取出来就行

            try
{
SqlDataAdapter tableFunction = new SqlDataAdapter(sql, sqlDnn.con); //查询数据
DataSet ds = new DataSet();
tableFunction.Fill(ds, "TN_SYS_FILE_CLASS");
DataTable dt = ds.Tables["TN_SYS_FILE_CLASS"];
for(int i=0;i<dt.Rows.Count;i++)
{
dgv.Rows.Add(dt.Rows[i]);
}
}


试试吧。
[解决办法]
引用:
引用:查询得到的一个表。把里面的数据取出来就行
C# code?1234567891011 try { SqlDataAdapter tableFunction = new SqlDataAdapter(sql, sqlDnn.con); //查询数据 ……


那就不用for循环了 直接取查询的第一条记录。

这样还不行,就不知道是我理解错了 还是你表达问题
[解决办法]
从你描述看好像是每次查询只有一条记录,那绑定显示永远就只有一条记录对?
如果是上面说的那样,就舍弃绑定这种方法,改用数据添加到控件上的方法也是很快的
最笨的方法如:
处理结果.Rows[计数].Cells[0].Value = 数据[5];
处理结果.Rows[计数].Cells[1].Value = 数据[4];
处理结果.Rows[计数].Cells[2].Value = 数据[6];
......
这样添加
如果用数据表,那就建立一个临时的表,每次合并读出来的数据,绑定就可以了


[解决办法]
引用:
引用:dataGridViewPart.DataSource = ds.Tables["TN_SYS_FILE_CLASS"];每次都改变了
如果你想保留原来的数据 查询后 插入到已有的数据里
我知道每次查询的结果都不一样,但怎么使第二行别覆盖第一行啊??但我又不把第一行的数据保存,我只想让它在datagridview里显示,下次运行……

全局变量
dataTable dtManage;
//第一次时 dtManage = ds.Tables["TN_SYS_FILE_CLASS"];
dataGridViewPart.DataSource = dtManage;
其它时候
for(...)
dtManage.rows.add(newRow);

读书人网 >C#

热点推荐