首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#datagridview 添加行解决办法

2013-01-22 
c#datagridview添加行string InName //一个每次单击传入的量 ,每次单击传入的都不一样private void butto

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);

热点排行