日期:2014-05-18  浏览次数:20885 次

C#如何从DataGridView控件数据,转成获取DataTable。
如题。

有没有现成的方法。

虽然自己写是可以实现。

------解决方案--------------------
就得自己写哥们,哎,同情!
你怎么写的
if (e.Row.Cells[2].Text == "1")//获取权限的值是1还是2,方便用汉字来显示
{
e.Row.Cells[2].Text = "普通管理员";
}
else
{
e.Row.Cells[2].Text = "超级管理员";
}
我刚做的你转换下 好像就行 看看吧
------解决方案--------------------
如果有分页的话还貌似不行吧...
------解决方案--------------------
昨天刚写的


/// <summary>
/// 方法实现把dgv里的数据完整的复制到一张内存表
/// </summary>
/// <param name="dgv">dgv控件作为参数</param>
/// <returns>返回临时内存表</returns>
public static DataTable GetDgvToTable(DataGridView dgv)
{
DataTable dt=new DataTable();
for (int count = 0; count < dgv.Columns.Count; count++)
{
DataColumn dc = new DataColumn(dgv.Columns[count].Name.ToString());
dt.Columns.Add(dc);
}
for (int count = 0; count < dgv.Rows.Count; count++)
{
DataRow dr = dt.NewRow();
for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
{
dr[countsub] = dgv.Rows[count].Cells[countsub].Value.ToString();
}
dt.Rows.Add(dr);
}
return dt;
}
------解决方案--------------------
如果你的datagridview是绑定数据源的,还比较好处理
如果没有绑定,好像还真的循环了
------解决方案--------------------
DataTable t=DataGridView1.DataSource as DataTable
------解决方案--------------------
如果直接数据绑定的话,直接 

DataTable dt = (datagridview.DataSource as DataTable);

表结构和数据都过去了。
------解决方案--------------------
楼主:如果你的数据在dgv里经过处理了,那就得循环
如3楼所写。
如果没有,也就没有此贴了
------解决方案--------------------
探讨
昨天刚写的


/// <summary>
        /// 方法实现把dgv里的数据完整的复制到一张内存表
        /// </summary>
        /// <param name="dgv">dgv控件作为参数 </param>
        /// <returns>返回临时内存表 </returns>
        public static DataTable GetDgvToTable(DataGridView dgv)
        {
            DataTable dt=new DataTable();
            for (int count = 0; count < dgv.Columns.Count; count++)
            {
                DataColumn dc = new DataColumn(dgv.Columns[count].Name.ToString());
                dt.Columns.Add(dc);
            }
            for (int count = 0; count < dgv.Rows.Count; count++)
            {
                DataRow dr = dt.NewRow();
                for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
                {
                    dr[countsub] = dgv.Rows[count].Cells[countsub].Value.ToString();