大家好,我是大成子。首先有点小兴奋,因为港版国安法生效啦,还有就是建党99周年(这些好像跟今天的内容没啥关系,哈哈)。。。


今天回顾一下最近几个最近遇到的开发错误,从产生错误的原因,可以解决的方法,尝试调试的入口等几个方面来分析,从而解决问题,然后写点杂记。


1.

Notunique table/alias

(表的别名不是唯一的)


产生原因:在拼接sql时,给表起的别名有重复

解决方法,仔细检查表的别名是否有重复,进行更改


unique:独一无二的,唯一的


alias:别名;联盟


2.

One of the identified items was in an invalid format

(其中一个被标识的项是无效的格式化)


首先我们需要也必须对开发当中高频词汇敏感。


invalid:无效的,无作用的。


identified:已被标识的


看到 无效, 格式化 关键词 ,第一反应就是定义的格式不对,数据类型不对,或者sql语句不正确(多个标点符号,括号,符号是中文之类的)导致在数据转换的过程中出现错误,说白了就是,我是a类型,你偏要拿个b类型接收我,要是能隐式转换还好。


我把最后执行拼接好的sql拿到数据库执行,发现可以查询出来,说明sql语句并没有问题,这再一次证明了是数据类型转换的问题,就只能是查出来的数据,在往后台的dto转换的过程中发生了错误。我仔细核对了几遍,发现后台接收的dto所有的属性的数据类型并没有错啊。


于是我在深处进行try catch,检查字段,找到报错的字段


再一次在数据库中检查数据,发现数据中有一条 数据 的id 为随手写的测试111,这才发现到了错误,C#后端 定义的类型是GUID 类型,数据库是char 36位的,可以写个1进去,但是转化的时候就会出现问题。


最后解决了问题。


3.

Duplicate entry '119035bb-98a8-4f91-b2ae-4054367a02d4' for key 'PRIMARY'


Duplicate :双倍的,重复的,复制的


看到primary第一反应就是主键 id


很明显主键重复了,可是我当时出现错误的地方,是修改数据的接口,为什么会报id主键重复呢?仔细检查。。是我自己不细心,把update写成了insert


4.

使用left join连表出现数据重复


现象:使用left join连表查询时,出现数据重复的情况


分析:使用left join 出现数据重复的情况,只能是 主表和联的表之间是一对多的关系,从而导致了数据的多条重复现象


解决方案:仔细核查是哪张表和主表是一对多的关系,改变查询方法,我当时是采用在select 语句中使用了子查询,解决了问题


另外,聚合函数查询的时候,聚合函数需要作为一个整体的,不要加括号使其分开。比如

(Select sum(a.count) from a where xxx) as xxx

而不应该是

(select (sum(a.count) from a where xxx)) as xxx



5.

Access xxxxx位置的文件 is denied


Denied 是deny否定,拒绝的过去式

deny:拒绝,否定


分析:应该是程序需要访问或者改变计算机某个目录下的文件状态,而被计算机拒绝了。


很明显,程序没用得到足够的权限,需要将上层文件夹,或者项目下所有文件夹,更改几个用户的权限,设置其可以控制所有。


解决:于是,我登陆上了服务器,将文件目录 下 所有的用户的权限 改为全部控制。



杂记部分:


is和as的作用


首先我们回忆下里氏替换的知识点:


子类能够完全替代父类,父类则不能完全替代子类。


当返回类型是父类类型时,我们可以使用它的子类进行返回。


is的作用: 判断是否转换成功 重在是否 如果能够转换,返回类型为true 否则返回false



2020.7.1错误集锦加杂记




2020.7.1错误集锦加杂记




as的作用:判断是否转换成功 重在转换 转换成功返回转换类型 失败返回null



2020.7.1错误集锦加杂记





2020.7.1错误集锦加杂记

相关文章:

  • 2022-02-09
  • 2021-10-06
  • 2021-11-20
  • 2021-11-14
  • 2021-06-27
  • 2021-10-29
  • 2022-02-01
猜你喜欢
  • 2022-01-10
  • 2021-11-21
  • 2021-07-29
  • 2021-08-11
  • 2022-01-11
  • 2021-09-17
相关资源
相似解决方案