如何把GridView里的数据转换成dataTable

angellan 2008-08-29 04:17:35
如何把GridView里的数据转换成dataTable
绑定GridView的数据源就是dataTable
...全文
3912 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoluo_123 2010-03-17
  • 打赏
  • 举报
回复
DataTable dt = (DataTable)gv.DataSource
我用这种方法也是提示“未将对象引用设置到对象的实例”,这是怎么回事啊,有哪位高手知道的说说,为这个问题都快郁闷死了。
scindy 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 a121984376 的回复:]
    GridView gv;
    protected void Page_Load(object sender, EventArgs e)
    {
        gv = new GridView();
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn());
        gv.DataSource = dt;
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        DataTable dt2 = (DataTable)gv.DataSource;
        Response.Write(dt2.Columns.Count);
    }
我就可以输入dt2.Columns.Count
[/Quote]

Response.Write(dt2.Columns.Count);我的这行报错误“未将对象引用设置到对象的实例”
这是怎么回事啊?
a121984376 2008-08-29
  • 打赏
  • 举报
回复
GridView gv;
protected void Page_Load(object sender, EventArgs e)
{
gv = new GridView();
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn());
gv.DataSource = dt;
}
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt2 = (DataTable)gv.DataSource;
Response.Write(dt2.Columns.Count);
}
我就可以输入dt2.Columns.Count
行者无疆-Kevin 2008-08-29
  • 打赏
  • 举报
回复
DataTable dt = (DataTable)DataView.DataSourse;
强制转换.
suyiming 2008-08-29
  • 打赏
  • 举报
回复
http://www.cnblogs.com/webabcd/archive/2008/06/27/632863.html
suyiming 2008-08-29
  • 打赏
  • 举报
回复
如果girdview导出excel的话
代码如下:

扩展GridView控件:
导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet)

使用方法:
为SmartGridView添加的方法
Export(string fileName)
Export(string fileName, ExportFormat exportFormat)
Export(string fileName, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, string[] columnNameList, string[] headers, ExportFormat exportFormat, Encoding encoding)

using System;
using System.Collections.Generic;
using System.Text;

using System.Data;
using System.Web.UI.WebControls;

namespace YYControls
{
/**//// <summary>
/// SmartGridView类的属性部分
/// </summary>
public partial class SmartGridView
{
/**//// <summary>
/// 导出SmartGridView的数据源的数据
/// </summary>
/// <param name="fileName">文件名</param>
/// <param name="exportFormat">导出文件的格式</param>
/// <param name="encoding">编码</param>
public void Export(string fileName, ExportFormat exportFormat, Encoding encoding)
{
DataTable dt = GetDataTable();
Helper.Common.Export(dt, exportFormat, fileName, encoding);
}

/**//// <summary>
/// 导出SmartGridView的数据源的数据
/// </summary>
/// <param name="fileName">文件名</param>
/// <param name="exportFormat">导出文件的格式</param>
public void Export(string fileName, ExportFormat exportFormat)
{
Export(fileName, exportFormat, Encoding.GetEncoding("GB2312"));
}

/**//// <summary>
/// 导出SmartGridView的数据源的数据为Excel
/// </summary>
/// <param name="fileName">文件名</param>
public void Export(string fileName)
{
Export(fileName, ExportFormat.CSV);
}

/**//// <summary>
/// 导出SmartGridView的数据源的数据
/// </summary>
/// <param name="fileName">输出文件名</param>
/// <param name="columnIndexList">导出的列索引数组</param>
/// <param name="exportFormat">导出文件的格式</param>
/// <param name="encoding">编码</param>
public void Export(string fileName,int[] columnIndexList, ExportFormat exportFormat, Encoding encoding)
{
DataTable dt = GetDataTable();

Helper.Common.Export(dt, columnIndexList, exportFormat, fileName, encoding);
}

/**//// <summary>
/// 导出SmartGridView的数据源的数据
/// </summary>
/// <param name="fileName">输出文件名</param>
/// <param name="columnNameList">导出的列的列名数组</param>
/// <param name="exportFormat">导出文件的格式</param>
/// <param name="encoding">编码</param>
public void Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding)
{
DataTable dt = GetDataTable();

Helper.Common.Export(dt, columnNameList, exportFormat, fileName, encoding);
}

/**//// <summary>
/// 导出SmartGridView的数据源的数据
/// </summary>
/// <param name="fileName">输出文件名</param>
/// <param name="columnIndexList">导出的列索引数组</param>
/// <param name="headers">导出的列标题数组</param>
/// <param name="exportFormat">导出文件的格式</param>
/// <param name="encoding">编码</param>
public void Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding)
{
DataTable dt = GetDataTable();

Helper.Common.Export(dt, columnIndexList, headers, exportFormat, fileName, encoding);
}

/**//// <summary>
/// 导出SmartGridView的数据源的数据
/// </summary>
/// <param name="fileName">输出文件名</param>
/// <param name="columnNameList">导出的列的列名数组</param>
/// <param name="headers">导出的列标题数组</param>
/// <param name="exportFormat">导出文件的格式</param>
/// <param name="encoding">编码</param>
public void Export(string fileName, string[] columnNameList, string[] headers, ExportFormat exportFormat, Encoding encoding)
{
DataTable dt = GetDataTable();

Helper.Common.Export(dt, columnNameList, headers, exportFormat, fileName, encoding);
}

/**//// <summary>
/// 获取数据源(DataTable)
/// </summary>
private DataTable GetDataTable()
{
DataTable dt = null;

if (this._dataSourceObject is DataTable)
dt = (DataTable)this._dataSourceObject;
else if (this._dataSourceObject is DataSet)
dt = ((DataSet)this._dataSourceObject).Tables[0];
else
throw new InvalidCastException("若要导出SmartGridView,应保证其数据源为DataTable或DataSet类型");

if (dt == null)
throw new ArgumentNullException("数据源", "数据源不能为NULL");

return dt;
}
}
}
suyiming 2008-08-29
  • 打赏
  • 举报
回复
既然datasource是datatable
那就再读取一次数据库
angellan 2008-08-29
  • 打赏
  • 举报
回复
protected void btnExcel_Click(object sender, EventArgs e)
{
if (GridView1.Rows.Count > 0)
{
DataTable dt = (DataTable)GridView1.DataSource;

int i = dt.Rows.Count;
ToEecel excel = new ToEecel();
excel.ExportToExcel(dt, Server.MapPath(".") + "/temp");
}
else
{
JsClass.Alert("请先导入Excel文件!");
}
}
在一个按钮里写的
a121984376 2008-08-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 angellan 的回复:]
if (GridView1.Rows.Count > 0)
{
DataTable dt = new DataTable();
dt = (DataTable)GridView1.DataSource;//这里显示GridView1.DataSource的dataSource是null
int i = dt.Rows.Count;
ToEecel excel = new ToEecel();

[/Quote]

你在哪个事件里写的?
angellan 2008-08-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 angellan 的回复:]
if (GridView1.Rows.Count > 0) 这里显示有三行数据
{
DataTable dt = new DataTable();
dt = (DataTable)GridView1.DataSource;//这里显示GridView1.DataSource的dataSource是null
int i = dt.Rows.Count;
ToEecel excel = new ToEecel();

[/Quote]
为什么不对呢

angellan 2008-08-29
  • 打赏
  • 举报
回复
if (GridView1.Rows.Count > 0)
{
DataTable dt = new DataTable();
dt = (DataTable)GridView1.DataSource;//这里显示GridView1.DataSource的dataSource是null
int i = dt.Rows.Count;
ToEecel excel = new ToEecel();
excel.ExportToExcel(dt, Server.MapPath(".") + "/temp");
}
a121984376 2008-08-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bijiniye1988 的回复:]
GridView1.DataSource 是个object类型的数据

我没有试过强转为DataTable

如果这个GridView1.DataSource在赋值的时候给的是DataTable的一个对象

可能还好,如果GridView1.DataSource在赋值的时候给的是DataSet的一个对象

是否真的能够强转成功呢?
[/Quote]

也可以转换成Dataset的
a121984376 2008-08-29
  • 打赏
  • 举报
回复


GridView gv = new GridView();
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn());
gv.DataSource = dt;

DataTable dt2 = (DataTable)gv.DataSource;

应该是这样 我测试了一下 dt2.colunms.count 是1
bijiniye1988 2008-08-29
  • 打赏
  • 举报
回复
GridView1.DataSource 是个object类型的数据

我没有试过强转为DataTable

如果这个GridView1.DataSource在赋值的时候给的是DataTable的一个对象

可能还好,如果GridView1.DataSource在赋值的时候给的是DataSet的一个对象

是否真的能够强转成功呢?
amingo 2008-08-29
  • 打赏
  • 举报
回复
gridviwe.datasource
fengboawhf 2008-08-29
  • 打赏
  • 举报
回复
直接ctype(datagrid.datasource,datatable)
给分给分!
课程首先介绍了Flutter的主要知识,通过4个案例消化吸收知识点。并通过手把手一步步带您完成一个【我的备忘录】APP项目,使得您真正认识Flutter在实际项目中的优势。  通过本课程学习您可以学习到Flutter技术如下知识:第1章 Flutter概述知识点:移动应用开发现状、移动应用开发类型、Hybrid与移动跨平台开发策略、Flutter是什么?、Flutter特点、Flutter体系结构。第2章 Flutter开发环境搭建知识点:基于Windows的Android开发环境、基于macOS的iOS开发环境、IDE开发工具设置。第3章 Flutter基础知识点:完成一个Flutter程序、一切都是组件(Widget)、组件分类、使用图片和图标资源、使用文本组件、增加调试组件工具。第4章 布局组件知识点:Flutter布局概述、容器布局(Container)、行(Row)、列(Column)布局、层叠布局、ListView、GridView。第5章 Material风格组件知识点:按钮、输入框、复选框、单选按钮、开关按钮、滑块。第6章 iOS Cupertino风格组件知识点:iOS Cupertino页面、Cupertino按钮、Cupertino开关按钮、Cupertino滑块、Cupertino分段控件。第7章 状态管理知识点:状态管理概述、局部状态管理、全局状态管理。第8章 导航知识点:导航概述、面包屑导航、标签导航、页面组件分散在不同文件中、全局状态管理与导航。第9章 工程依赖管理知识点:工程依赖管理概述、pub依赖管理工具。第10章 数据存储知识点:Flutter数据存储策略、键值对数据存储、文件数据存储、SQLite数据存储、示例:数据CRUD操作。第11章 网络通信知识点:搭建自己的Web服务器、使用http包、示例:城市信息列表。第12章 项目实战:我的备忘录APP知识点:备忘录APP项目说明、备忘录项目后台Web服务API说明、备忘录APP项目分析与设计、初始化工程、持久层实现、表示层实现。 

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧