首页 新闻 会员 周边 捐助

asp.net 网站中 偶尔会出现 某一列不属于该表的错误

0
悬赏园豆:50 [已关闭问题] 解决于 2012-11-20 18:33

在我的asp.net 网站中 偶尔会出现 某一列不属于该表的错误提示, 但是可以确定的是,该列在表中确实存在,有哪位高手知道是怎么回事吗?万分紧急,大虾帮忙啊 !!!! 

问题补充:
 1  private static SqlConnection connection;
 2 
 3         //根据web.config得到一个SqlConnection
 4         public static SqlConnection Connection
 5         {
 6             get
 7             {
 8               string connectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
 9                 if (connection == null)
10                 {
11                     connection = new SqlConnection(connectionString);
12                     connection.Open();
13                 }
14                 else if (connection.State == System.Data.ConnectionState.Closed)
15                 {
16                     connection.Open();
17                 }
18                 else if (connection.State == System.Data.ConnectionState.Broken)
19                 {
20                     connection.Close();
21                     connection.Open();
22                 }
23                 return connection;
24             }
25         }
26          //得到无参一个表
27         public static DataTable GetDataSet(string safeSql)
28         {
29             DataSet ds = new DataSet();
30             SqlCommand cmd = new SqlCommand(safeSql, Connection);
31             SqlDataAdapter da = new SqlDataAdapter(cmd);
32             da.Fill(ds);
33             if (connection != null)
34             {
35                 connection.Close();
36                 connection.Dispose();
37                 connection = null;
38             }
39 
40             return ds.Tables[0];
41             
42         }

调试中发现,返回表的内容是另外一张表的内容,这是怎么回事啊 ???

youhumian的主页 youhumian | 初学一级 | 园豆:76
提问于:2012-11-12 22:38
< >
分享
其他回答(5)
0

查询sql字符串拼接的问题?能不能把大概代码写一些?

收获园豆:4
飞来飞去 | 园豆:2057 (老鸟四级) | 2012-11-12 22:41

但是这个问题是偶尔出现的啊 一般是并发操作多的情况下引起的 不知道有没有别的原因?谢谢了 !!!

支持(0) 反对(0) youhumian | 园豆:76 (初学一级) | 2012-11-12 22:45

@youhumian: 别再那里纠结了,我这里写好了一个现成的:https://smartbooks.googlecode.com/svn/trunk/Smart/SmartDBUtility/SqlServerHelper.cs

支持(0) 反对(0) SmartBooks | 园豆:264 (菜鸟二级) | 2012-11-14 16:55

@SmartBooks: 谢谢了  呵呵

支持(0) 反对(0) youhumian | 园豆:76 (初学一级) | 2012-11-20 18:27
0

这是sql语句写错了的原因,你可以查下在拼sql语句时,是否有全局变量,或者有多线程的代码

收获园豆:12
az235 | 园豆:8483 (大侠五级) | 2012-11-12 23:20

我已经把全局变量改成了局部变量了啊   多线程的代码是什么意思啊?谢谢啊!

支持(0) 反对(0) youhumian | 园豆:76 (初学一级) | 2012-11-12 23:22

@youhumian: 多线程就是多个线程同时执行,如果是全局变量的原因的话,好解决,是多线程的话,你就要把你的代码贴上来好多才行,否则我们也不知道是哪里出现这种情况了。

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-11-12 23:31

@az235: 上面是我调用数据库主要用到的代码,有一次调试发现,返回表的内容是另外一张表的内容,请问,这是什么情况啊???大侠

支持(0) 反对(0) youhumian | 园豆:76 (初学一级) | 2012-11-13 21:12

@youhumian: 是你的代码没有线程安全。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2012-11-13 21:15

@imfunny: 从贴出来的代码来看,哥们你的分析很有道理,建议再检查下safeSql这个参数传入的值,是否有问题。

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-11-14 10:52
0

try,catch一下这个异常,记日志,看看异常时候的sql语句是什么样的就可以了

收获园豆:4
田林九村 | 园豆:2367 (老鸟四级) | 2012-11-13 08:00
0

应该有条件判断,不同的条件,返回的列不一样

收获园豆:4
Qlin | 园豆:2403 (老鸟四级) | 2012-11-13 08:56
0

改用实体类就好了,弱类型就容易出现各种运行时错误。

收获园豆:4
秦楼东 | 园豆:913 (小虾三级) | 2012-11-13 10:06
0

表格控件GrivView控件或者其他的数据控件字段绑定赋值问题,请重新检查!你是如何取控件里边字段值得!Debug一下..尽量不要用控件。。。。会让人变成脑残的。。

收获园豆:4
SmartBooks | 园豆:264 (菜鸟二级) | 2012-11-13 17:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册