FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1697|回复: 3
打印 上一主题 下一主题

多用户登陆时,数据库访问出错

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-8 14:30:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 rao 于 2014-4-8 14:32 编辑

如果登陆的用户数少,就正常,超过100个同时在线,就出现问题了。
在登陆界面,需要判断用户名是否存在。代码:
public static DataTable select(string sql)      
{
            con="Data Source=172.1.0.0;Initial Catalog=ais09;User ID=sa; Password=123;Connect Timeout=8 ;";
            SqlConnection connection = new SqlConnection(con);
            SqlCommand cmd = new SqlCommand();
            connection.Open();
            try
            {
                cmd.Connection = connection;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sql;
                SqlDataAdapter dap = new SqlDataAdapter();
                dap.SelectCommand = cmd;
                DataTable dt = new DataTable();
                dap.Fill(dt);
                return dt;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                cmd.Dispose();
                connection.Close();
            }
        }
调用:DataTable dt =select("select * from userinfo where users='" + this.tbxaccount.Text.Trim() + "'");
正常结果返回是 dt.Rows.Count = 1,如果登陆的用户数少,就正常。
超过100个同时在线,就出现问题了,同样的查询条件,返回是 dt.Rows.Count = 0,数据库明明是有这个用户的,不明白为什么会查询不到数据。
请问是代码问题吗

沙发
发表于 2014-4-9 08:52:20 | 只看该作者
测一下,在线用户数达100以上时,此处代码执行的情况,是不是连接延时设置的太短了;
还用数据库有没有设置连接数的最大值;
再确认录入的用户名是否正确(大小写,数字区分全半角等)?
板凳
 楼主| 发表于 2014-4-9 11:43:54 | 只看该作者
beingtop 发表于 2014-4-9 08:52
测一下,在线用户数达100以上时,此处代码执行的情况,是不是连接延时设置的太短了;
还用数据库有没有设置 ...

准备加大时间,设置连接数,明天测试。
不过就不明白,如果超时、超过连接数,可能出现查询错误,但为什么没有错误提示,直接返回0值。
有点担心加大时间,设置连接数是否能解决问题。
地板
 楼主| 发表于 2014-4-10 11:54:37 | 只看该作者
beingtop 发表于 2014-4-9 08:52
测一下,在线用户数达100以上时,此处代码执行的情况,是不是连接延时设置的太短了;
还用数据库有没有设置 ...

设置Connect Timeout=40;Max Pool Size=512,但还是出现同样的问题,
20人登陆都有时会出现这个问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-26 18:41 , Processed in 0.044642 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表