高并发时SqlDataAdapter查询数据库到DataSet,结果和sql对不上,数据乱了

using(Conn){ConnOpen();using(SqlCommandcmd=newSqlCommand(sql,Conn)){log.Debug("sql:"+... using (Conn)
{
ConnOpen();
using (SqlCommand cmd = new SqlCommand(sql, Conn))
{
log.Debug("sql:"+sql);
log.Debug("ConnectionString:" + Conn.ConnectionString);
cmd.CommandType = CommandType.Text;

SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable data = new DataTable();
adapter.Fill(data);//填充datatable
foreach (DataColumn dc in data.Columns)
{
log.Error(dc.ColumnName);
}
return data;

}
}

访问量小时没问题,sql是什么结果就是什么,但是访问量一大,datatable里的数据就和sql对不上,比如sql语句是
select vipdays from userlist where uid=1000,有时返回结果就乱了,列名就不对
下面是日志
2016-06-22 11:05:22,296 index_letterShow.Page_Load(:0) ERROR Logger : System.ArgumentException: 列“vipdays”不属于表 。
在 System.Data.DataRow.GetDataColumn(String columnName)
在 System.Data.DataRow.get_Item(String columnName)
在 index_letterShow.Page_Load(Object sender, EventArgs e)
2016-06-22 11:05:38,296 Base.getUserInfo(:0) ERROR Logger : Column1
2016-06-22 11:05:38,296 index_otherDetail.Page_Load(:0) ERROR Logger : System.ArgumentException: 列“vipdays”不属于表 。
在 System.Data.DataRow.GetDataColumn(String columnName)
在 System.Data.DataRow.get_Item(String columnName)
在 index_otherDetail.Page_Load(Object sender, EventArgs e)

根据日志,本来返回datatable里的列应该是vipdays,结果变成了Column1,有时又变成了其他列名,列数也会变多变少,很奇怪,不是每次毕现,访问量大了才会出现,有没有人遇到过同样的问题
展开
 我来答
匿名用户
2016-06-26
展开全部
getClass().getClassLoader().loadClass("com.mysql.jdbc.Driver"),就不行。 为什么呢?打开com.mysql.jdbc.Driver的源代码看看, // // Register ourselves with the DriverManager // static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } } 原来,Driver在static块中会注册自己到java.sql.DriverManager。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2016-06-22 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7940万
展开全部
没遇到过。考虑一下用DataReader或者优化sql语句,真需要一次返回大量数据么?
追答
远程看675686066
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式