C#定义了静态的DataTable,但会被覆盖?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#定义了静态的DataTable,但会被覆盖?相关的知识,希望对你有一定的参考价值。
多个用户打开这个网页,后者会覆盖前者查看的保存到DataTable中的数据,导致多个老用户看到的都是最新那个用户看到的数据.有没什么方法解决这个问题,
DataTable是引用类型你只要对引用操作,所有的引用都会同时变更
要么你用动态的,每次New DaTaTable,然后把它存到用户关联的一个对象中
你说你用的是网页?你的数据是在哪里设置的,又是在哪里用的?追问
你好,我是在一个网页定义了一个静态DataTable,然后打开这个网页会根据网址的不同参数去装载不同数据到这个DataTable.比如你先打开网页,然后我也打开,那么你的DataTable显示的实际是我打开的网页的数据,,这个有没办法解决可以解决,让不同用户互不影响.
追答对于网页来说有服务器和客户端的说法
我假定你的Table是在服务端的,你使用的是不同的浏览器访问的一个API,我觉得你可能是用的Webform技术
你要在给客户端返回数据的时候重新New一个DataTable接收数据库的数据,然后返回给前端,而不要赋值给Static的DataTable
但凡用的新的WebAPI,这个问题也很好解决
不要用静态
不仅不要用静态,还要仔细处理用户session,避免多线程(用户)引起的混乱
如果是asp.net(core),有框架自带的session管理可以很方便地实现
C#怎么讲DataTable导出到Excel
用NOPI,其实 Excel文件也是有一定格式的,office只是能对这种格式准确地进行读写。那么,NOPI也是能对Excel进行操作,不依赖于电脑是的Excel软件。
它也定义了 sheet ,workbook,cell,row ,column等对象 ,方便操作Excel对象,sheet表单,单元格,行,列 等对象 。
学习一下就会了。
参考网址:
http://blog.csdn.net/pukuimin1226/article/details/7684910
dll文件你可以从网上下载。很多地方都有。你没有找到的话可以联系我邮箱,pukuimin@qq.com 参考技术A 安装office添加excel的com组件就可以。 参考技术B 可以通过OLE连接Excel作为数据源,然后用SQL语句向Excel中插数据
以上是关于C#定义了静态的DataTable,但会被覆盖?的主要内容,如果未能解决你的问题,请参考以下文章
C#中定义了一个DataTable,怎样求得表中的最大值,并返回对应的行和列的下标啊
C# 将 DataTable 绑定到现有 DataGridView 列定义