xiaojunjor 2021-12-16 11:24 采纳率: 50%
浏览 29

SqlCommand运行一个正确的sql语句,查询结果与数据库中的查询结果不一致?

sql语句如下:
SELECT DISTINCT organization_name, (SELECT C FROM [教基1001] as x where x.A = 18 AND a.organization_no = x.organization_no) as contact
,(SELECT C FROM [教基1001] as y where y.A = 19 AND a.organization_no = y.organization_no) as contactduty
FROM [教基1001] as a
ORDER BY gather_organization_no, organization_no;

在数据库中结果是正常的:

img

使用该sql语句的代码如下:
string sqlStr = string.Format(@"SELECT DISTINCT organization_name, (SELECT C FROM [教基1001] as x where x.A = 18 AND a.organization_no = x.organization_no) as contact
,(SELECT C FROM [教基1001] as y where y.A = 19 AND a.organization_no = y.organization_no) as contactduty
FROM [教基1001] as a
ORDER BY gather_organization_no, organization_no;");

            List<DuDaoSchool> lists = new List<DuDaoSchool>();
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
                SQLiteCommand com = new SQLiteCommand
                {
                    Connection = this.con,
                    CommandText = sqlStr,
                    CommandTimeout = 60 * 20,
                    CommandType = CommandType.Text
                };
                SQLiteDataReader rdr = com.ExecuteReader();

                while (rdr.Read())
                {
                    DuDaoSchool entity = new DuDaoSchool
                    {
                        Name = rdr["organization_name"].ToString(),
                        Contact = rdr["contact"].ToString(),
                        ContactDuty = rdr["contactduty"].ToString()
                    };
                    lists.Add(entity);
                }
            }

但是运行的结果,除了organization_name是正常的,另外两列都变成0了:

img

请问这是什么原因?问题出在哪?

  • 写回答

5条回答 默认 最新

  • 於黾 2021-12-16 13:22
    关注

    1.断点跟,把sqlStr的内容放到数据库里去执行,看到底是什么,是否自己拼接sql语句的过程有问题
    2.把读数据库的代码注释掉,直接给DuDaoSchool 赋值,看结果是什么,是否自己类封装的有问题,没有正确赋值
    3.以后遇到此类问题,一步一步的排除,反正一共就这么几部分,先找到问题到底出在哪一步,再说如何解决

    评论

报告相同问题?

问题事件

  • 创建了问题 12月16日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c