当前位置:编程学习 > C#/ASP.NET >>

急,请高手赐教asp.net写的客户端,两个客户端不能同时访问!

请高手帮忙指点下:
我用asp.net些了个网页,供查询使用,因为查询时间可能需要一分钟,所以在一分钟内,另外一个用户B若登录,则A用户查询立刻报错:
System.IndexOutOfRangeException: 无法找到表 0。

当然,两个用户也不能同时查询!

请高手帮忙找个解决方法!
感谢!

--------------------编程问答-------------------- 不明白,你可以把代码贴出来吗?有代码有真相。。 --------------------编程问答-------------------- 这个应该是数据访问的并发问题,
问题的根源应该是:一个客户端正在查询的1分钟内,如果另一个客户端也要来读数据库,则就会出现异常!

我不知道怎么处理这个并发问题,请高手赐教啊!
感激不尽! --------------------编程问答-------------------- 赶快来帮忙解决啊!,着急啊!

这个就是两个客户端在同一时间点访问同一个表,出错

        public static DataTable GetDataSet(string safeSql, params SqlParameter[] values)
        {
            DataSet ds = new DataSet();
            SqlCommand cmd = new SqlCommand(safeSql, Connection);

            cmd.Parameters.AddRange(values);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
            return ds.Tables[0];
        } --------------------编程问答-------------------- 你可以断点一下  断点放到最后一句 看看 ds 里面有没有这个表 或者有没有数据
可能你是sql 语句写错了 --------------------编程问答-------------------- 数据库查询时在表明后面加(nolock) 
--------------------编程问答-------------------- 这种事不会发生 --------------------编程问答-------------------- 只有两个用户并行而已啊,照讲数据库可以轻松应付的,可能你程序上有些问题吧

非要用程序限制:
在a用户开始查询时做个记号,比如在application里,在xml里,session里等等设置x=1,b用户登录前读取x,如果等于1,则提示等待,=0则直接登录。a用户查询完成后改变x=0 --------------------编程问答-------------------- 如果有人查询 就锁住罗
告诉别人数据库正忙 要他等一下
如果出现这种情况报异常的话 就把错误页面导向这个提示页面

“数据库繁忙,请稍候在查询!” --------------------编程问答-------------------- 你是写成静态的了吧,第二用户把第一个用户的东西改了,当然会有错了
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,