做短链的网站/百度网盘怎么用
大家好,我是大成子。首先有点小兴奋,因为港版国安法生效啦,还有就是建党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


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

