在不同的电脑上同时登录后台进行相同操作,当数据还没插入数据库,只是建了个dataTable暂存数据时为什么点击暂存后能看到另一管理员DataTable里的数据? 在不同的电脑上用不同账号同时登录后台进行相同操作,当数据还没插入数据库,只是建了个dataTable暂存数据时为什么点击暂存后能看到另一管理员DataTable里的数据?难道DataTable有共用?不同账号创建的应该是不同的DataTable吧?为什么会这样子呢?懂的朋友帮帮忙吧!分不多啊!DataTable缓存暂存 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lz说的dataTable暂存数据是指暂时存在内存里的还是存在数据库里的?存在内存里的话不可能共用的,建议lz查下是不是这时候数据已经暂存到数据库里了,所以才能查看到的 DataTable只是个内存表,暂存是调用什么方法?能看到对方的数据,应该是提交到数据库了吧? 还没有提交到数据库哦!!!!我是通过遍历暂存数据的DataTable dt=new DataTable()将数据插入数据库的,我都把相关插入数据库的操作给注释了还是能互相看见其它管理员dt中暂存的数据!!是不是DataTable还有什么高级的用法尼? 我用了一个repeater控件来显示暂存的数据。DataTable dt=new DataTable();在暂存按钮上只是重新将dt绑定到repeater控件上:this.rptList.DataSource=dt;还没到插入数据库操作! JavaNet的牛肉粉丝 :是在不同的电脑上同时进行相同的操作 你自己也说了,是不同账号不同的DataTable, 但你现在用的是相同的账号啊, 那存在一起有什么奇怪的。 你的程序是只认账号的。 你自己也说了,是不同账号不同的DataTable, 但你现在用的是相同的账号啊, 那存在一起有什么奇怪的。 你的程序是只认账号的。题目看错了。你看一下,你的DataTable是存在Session里还是存在Application里,如果是Session里的话,这种情况是绝对不可能的。 关键是看你操作的是哪一部分的DataTable 楼主 你是在逗我们吗?,是 b/s的???如果是B/S的大概你用了application了,c/s绝对不可能出现这种问题 系统部署到服务器后用户反馈回来的这一Bug,然后众码农在各自电脑上同时用不同账号登录进行操作测试,确实存在这一问题!几经研究 尚未找到根源!没有用application ,用了application就有可能出现这种问题? 问题的根本是,你怎么暂存你的DataTable的,也就是你怎么保存的。说不清楚的话,把代码贴出来。 可能说暂存不太准确啊。我的DataTable是这样建立的: public static DataTable dt = new DataTable(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { dt.Columns.Add("1"); dt.Columns.Add("2"); dt.Columns.Add("3"); dt.Columns.Add("4"); dt.Columns.Add("5"); bind(); } } //暂存 protected void Button1_Click(object sender, EventArgs e) { DataRow dr = dt.NewRow(); dr[0] = "a"+dt.Rows.Count.ToString(); dr[1] = "b" + dt.Rows.Count.ToString(); dr[2] = "c" + dt.Rows.Count.ToString(); dr[3] = "d" + dt.Rows.Count.ToString(); dr[4] = "e" + dt.Rows.Count.ToString(); dt.Rows.Add(dr); bind(); } public void bind() { rptList.DataSource = dt; rptList.DataBind(); }会不会是这里的问题:public static DataTable dt = new DataTable(); public DataTable dt = new DataTable(); public static DataTable dt = new DataTable();http://msdn.microsoft.com/zh-cn/library/98f28cdx.aspx 你的这个DataTable是静态是肯定不行的。因为静态的成员,是在这个类初次加载的时候就建立了,之后是不会再创建的。而且你的列还会越来越多,代码不是这么写的。 B/S 的尽量不要用static 静态变量。 正则怎么获得21456688754 datagridview其它页面刷新问题 TextBox 提示信息的问题 我用ikvmc.exe把一个.jar包转换为了.exe包,现在C#.net到是可以调用了,但是还有不能编译过去!!! 请问像百度那样的搜索结果页面是怎么做到的??? 关于C# mobile socket 的编程 请大家帮忙,C#一个问题。 还是问关于 大量数据写本地ACCESS效率的问题 DataTable跟DataGrid的问题 MATLAB与C#混合编程之生成dll报错的问题 dev的gridview问题 mfc调用WPF问题
我是通过遍历暂存数据的DataTable dt=new DataTable()将数据插入数据库的,我都把相关插入数据库的操作给注释了还是能互相看见其它管理员dt中暂存的数据!!
是不是DataTable还有什么高级的用法尼?
DataTable dt=new DataTable();
在暂存按钮上只是重新将dt绑定到repeater控件上:
this.rptList.DataSource=dt;还没到插入数据库操作!
你自己也说了,是不同账号不同的DataTable, 但你现在用的是相同的账号啊, 那存在一起有什么奇怪的。 你的程序是只认账号的。
你自己也说了,是不同账号不同的DataTable, 但你现在用的是相同的账号啊, 那存在一起有什么奇怪的。 你的程序是只认账号的。题目看错了。
你看一下,你的DataTable是存在Session里还是存在Application里,如果是Session里的话,这种情况是绝对不可能的。
如果是B/S的大概你用了application了,
c/s绝对不可能出现这种问题
问题的根本是,你怎么暂存你的DataTable的,也就是你怎么保存的。说不清楚的话,把代码贴出来。
我的DataTable是这样建立的:
public static DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt.Columns.Add("1");
dt.Columns.Add("2");
dt.Columns.Add("3");
dt.Columns.Add("4");
dt.Columns.Add("5");
bind();
}
} //暂存
protected void Button1_Click(object sender, EventArgs e)
{
DataRow dr = dt.NewRow();
dr[0] = "a"+dt.Rows.Count.ToString();
dr[1] = "b" + dt.Rows.Count.ToString();
dr[2] = "c" + dt.Rows.Count.ToString();
dr[3] = "d" + dt.Rows.Count.ToString();
dr[4] = "e" + dt.Rows.Count.ToString();
dt.Rows.Add(dr);
bind();
} public void bind()
{
rptList.DataSource = dt;
rptList.DataBind();
}
会不会是这里的问题:public static DataTable dt = new DataTable();
http://msdn.microsoft.com/zh-cn/library/98f28cdx.aspx
你的这个DataTable是静态是肯定不行的。因为静态的成员,是在这个类初次加载的时候就建立了,之后是不会再创建的。而且你的列还会越来越多,代码不是这么写的。