• 【Bug】Data is Null. This method or property cannot be called on Null values.


    先来看看其他博主的回答如下

    在使用SqlClient的DataReader的时候,如果某一个字段值为NULL并且使用reader.getString方法获取的时候会出现“Data is Null. This method or property cannot be called on Null values.”异常。初步分析导致该异常的原因应该是:

    1、NULL值在DataReader中的类型是DBNULL。

    2、DBNULL和字符串的空白值String.Empty不是同样的概念。

    3、由于DBNULL和String.Empty不是同等值,因此SqlClient默认的实现没有对其进行强制转化而是直接抛出异常

    假装是分割线

    查看错误的堆栈跟踪信息,确实报错的方法和上面讲的一样,但是数据表对应字段为null,model对应为string之前也没有出错过,于是抱着试试看的心态把string改成了string?,然后还是报错

    最终根据数据表重新生成了mode解决问题,查看git对比,除了几个最大长度的设置差异外就是一些备注差异,于是我把model里一个string最大长度设置成和数据库不一样的,结果未能复现bug。

    前后model修改放下面,有知道的可以在下面评论。

    旧model

     #region 表字段
            /// 
            /// 停线开始时间
            /// 
            [Display(Name = "停线开始时间")]
            [Column("line_stop_time_start", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? LineStopTimeStart { get; set; }
    
            /// 
            /// 不良数
            /// 
            [Display(Name = "不良数")]
            [DisplayFormat(DataFormatString = "18,6")]
            [Column("rejection_number", TypeName = "decimal")]
            [Editable(true)]
            [Required(AllowEmptyStrings = false)]
            public decimal? RejectionNumber { get; set; }
    
            /// 
            /// 批准人姓名
            /// 
            [Display(Name = "批准人姓名")]
            [MaxLength(64)]
            [Column("ratifier_name", TypeName = "nvarchar(64)")]
            [Editable(true)]
            public string RatifierName { get; set; }
    
            /// 
            /// 记录人名字
            /// 
            [Display(Name = "记录人名字")]
            [MaxLength(32)]
            [Column("recorder_name", TypeName = "nvarchar(32)")]
            [Editable(true)]
            public string RecorderName { get; set; }
            /// 
            /// 开单部门名字
            /// 
            [Display(Name = "开单部门名字")]
            [MaxLength(32)]
            [Column("billing_dept_name", TypeName = "nvarchar(32)")]
            [Editable(true)]
            public string BillingDeptName { get; set; }
    
            /// 
            /// 异常类别 0=来料,1=制程,2=成品,3=出库  从此往后为金属元素的:10=分析检测反馈,11=设备异常反馈,12=现场异常反馈,13=实效异常反馈
            /// 
            [Display(Name = "异常类别 0=来料,1=制程,2=成品,3=出库  从此往后为金属元素的:10=分析检测反馈,11=设备异常反馈,12=现场异常反馈,13=实效异常反馈 ")]
            [Column("exception_type", TypeName = "int")]
            [Editable(true)]
            public int? ExceptionType { get; set; }
    
            /// 
            /// 品质工程师id
            /// 
            [Display(Name = "品质工程师id")]
            [Column("quality_engineer_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? QualityEngineerId { get; set; }
    
            /// 
            /// 开单部门
            /// 
            [Display(Name = "开单部门")]
            [Column("billing_dept_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? BillingDeptId { get; set; }
    
            /// 
            /// 发现日期
            /// 
            [Display(Name = "发现日期")]
            [Column("discover_datetime", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? DiscoverDatetime { get; set; }
    
            /// 
            /// 品质工程师姓名
            /// 
            [Display(Name = "品质工程师姓名")]
            [MaxLength(510)]
            [Column("quality_engineer_name", TypeName = "nvarchar(510)")]
            [Editable(true)]
            public string QualityEngineerName { get; set; }
    
            /// 
            /// 生产数量
            /// 
            [Display(Name = "生产数量")]
            [DisplayFormat(DataFormatString = "18,6")]
            [Column("production_number", TypeName = "decimal")]
            [Editable(true)]
            [Required(AllowEmptyStrings = false)]
            public decimal? ProductionNumber { get; set; }
    
            /// 
            /// 异常描述
            /// 
            [Display(Name = "异常描述")]
            [MaxLength(512)]
            [Column("exception_description", TypeName = "nvarchar(512)")]
            [Editable(true)]
            public string ExceptionDescription { get; set; }
    
            /// 
            /// 批处理号
            /// 
            [Display(Name = "批处理号")]
            [MaxLength(32)]
            [Column("batch_no", TypeName = "varchar(32)")]
            [Editable(true)]
            public string BatchNo { get; set; }
    
            /// 
            /// 审核人id
            /// 
            [Display(Name = "审核人id")]
            [Column("checker_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? CheckerId { get; set; }
    
            /// 
            /// 记录人
            /// 
            [Display(Name = "记录人")]
            [Column("recorder_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? RecorderId { get; set; }
    
            /// 
            /// 审核人姓名
            /// 
            [Display(Name = "审核人姓名")]
            [MaxLength(64)]
            [Column("checker_name", TypeName = "nvarchar(64)")]
            [Editable(true)]
            public string CheckerName { get; set; }
    
            /// 
            /// 批准人id
            /// 
            [Display(Name = "批准人id")]
            [Column("ratifier_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? RatifierId { get; set; }
    
            /// 
            ///状态0=草稿,1=品质部门审批中,2=工程部门审批中,3=制造部门审批中,4=销售部门审批中,5=品质副总审批中,6=执行中,7=已完结,10=开单部门审核中,11=开单部门批准中  此后为金属元素内容:30=草稿(班长判定中),32=产品负责人判定中,33=班长整改中,34=质量科确认中,35=已处理
            /// 
            [Display(Name = "状态0=草稿,1=品质部门审批中,2=工程部门审批中,3=制造部门审批中,4=销售部门审批中,5=品质副总审批中,6=执行中,7=已完结,10=开单部门审核中,11=开单部门批准中  此后为金属元素内容:30=草稿(班长判定中),32=产品负责人判定中,33=班长整改中,34=质量科确认中,35=已处理")]
            [Column("state", TypeName = "int")]
            [Editable(true)]
            [Required(AllowEmptyStrings = false)]
            public int State { get; set; }
    
            /// 
            /// 产品名称
            /// 
            [Display(Name = "产品名称")]
            [MaxLength(64)]
            [Column("product_name", TypeName = "nvarchar(64)")]
            [Editable(true)]
            [Required(AllowEmptyStrings = false)]
            public string ProductName { get; set; }
    
            /// 
            /// 发生类型
            /// 
            [Display(Name = "发生类型")]
            [Column("occurrence_type", TypeName = "int")]
            [Editable(true)]
            public int? OccurrenceType { get; set; }
    
            /// 
            /// 数据来源:0=产品化,1=金属元素
            /// 
            [Display(Name = "数据来源:0=产品化,1=金属元素")]
            [Column("type", TypeName = "int")]
            [Editable(true)]
            public int? Type { get; set; }
    
            /// 
            /// 生产订单
            /// 
            [Display(Name = "生产订单")]
            [MaxLength(32)]
            [Column("production_order", TypeName = "varchar(32)")]
            [Editable(true)]
            public string ProductionOrder { get; set; }
    
            /// 
            /// 不良率
            /// 
            [Display(Name = "不良率")]
            [MaxLength(8)]
            [Column("rejection_rate", TypeName = "varchar(8)")]
            [Editable(true)]
            [Required(AllowEmptyStrings = false)]
            public string RejectionRate { get; set; }
    
            /// 
            /// 存放位置
            /// 
            [Display(Name = "存放位置")]
            [MaxLength(32)]
            [Column("storage_location", TypeName = "varchar(32)")]
            [Editable(true)]
            public string StorageLocation { get; set; }
    
            /// 
            /// 停线结束时间
            /// 
            [Display(Name = "停线结束时间")]
            [Column("line_stop_time_end", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? LineStopTimeEnd { get; set; }
    
            /// 
            /// 制造时间
            /// 
            [Display(Name = "制造时间")]
            [Column("manufacture_datetime", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? ManufactureDatetime { get; set; }
    
            /// 
            /// 异常单号
            /// 
            [Display(Name = "异常单号")]
            [MaxLength(32)]
            [Column("sheet_number", TypeName = "varchar(32)")]
            [Editable(true)]
            public string SheetNumber { get; set; }
    
    
            /// 
            /// 完成日期
            /// 
            [Display(Name = "完成日期")]
            [Column("finish_datetime", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? FinishDatetime { get; set; }
    
    
            /// 
            /// 是否采用反应计划 0否 1是
            /// 
            [Display(Name = "是否采用反应计划 0否 1是")]
            [Column("is_adopt_response_plan", TypeName = "int")]
            [Editable(true)]
            public int? IsAdoptResponsePlan { get; set; }
    
            /// 
            /// 反应计划
            /// 
            [Display(Name = "反应计划")]
            [MaxLength(256)]
            [Column("adopt_response_plan", TypeName = "nvarchar(256)")]
            [Editable(true)]
            public string AdoptResponsePlan { get; set; }
            #endregion
    
            #region 显示字段
            #endregion
    
            #region 关联表
            #endregion
    
            #region 子表
            /// 
            /// 异常处理详情
            /// 
            [Display(Name = "异常处理详情")]
            public List<BizExceptionHandlingDetail> BizExceptionHandlingDetail { get; set; }
    
            #endregion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277

    新model

    #region 表字段
            /// 
            /// 停线开始时间
            /// 
            [Display(Name = "停线开始时间")]
            [Column("line_stop_time_start", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? LineStopTimeStart { get; set; }
    
            /// 
            /// 不良数
            /// 
            [Display(Name = "不良数")]
            [DisplayFormat(DataFormatString = "18,6")]
            [Column("rejection_number", TypeName = "decimal")]
            [Editable(true)]
            public decimal? RejectionNumber { get; set; }
    
            /// 
            /// 批准人姓名
            /// 
            [Display(Name = "批准人姓名")]
            [MaxLength(32)]
            [Column("ratifier_name", TypeName = "nvarchar(32)")]
            [Editable(true)]
            public string RatifierName { get; set; }
    
            /// 
            /// 异常类别 0=来料,1=制程,2=成品,3=出库  从此往后为金属元素的:10=分析检测反馈,11=设备异常反馈,12=现场异常反馈,13=实效异常反馈
            /// 
            [Display(Name = "异常类别 0=来料,1=制程,2=成品,3=出库  从此往后为金属元素的:10=分析检测反馈,11=设备异常反馈,12=现场异常反馈,13=实效异常反馈")]
            [Column("exception_type", TypeName = "int")]
            [Editable(true)]
            public int? ExceptionType { get; set; }
    
            /// 
            /// 数据来源:0=产品化,1=金属元素
            /// 
            [Display(Name = "数据来源:0=产品化,1=金属元素")]
            [Column("type", TypeName = "int")]
            [Editable(true)]
            [Required(AllowEmptyStrings = false)]
            public int Type { get; set; }
    
            /// 
            /// 品质工程师id
            /// 
            [Display(Name = "品质工程师id")]
            [Column("quality_engineer_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? QualityEngineerId { get; set; }
    
            /// 
            /// 开单部门
            /// 
            [Display(Name = "开单部门")]
            [Column("billing_dept_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? BillingDeptId { get; set; }
    
            /// 
            /// 发现日期
            /// 
            [Display(Name = "发现日期")]
            [Column("discover_datetime", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? DiscoverDatetime { get; set; }
    
            /// 
            /// 品质工程师姓名
            /// 
            [Display(Name = "品质工程师姓名")]
            [MaxLength(510)]
            [Column("quality_engineer_name", TypeName = "nvarchar(510)")]
            [Editable(true)]
            public string QualityEngineerName { get; set; }
    
            /// 
            /// 生产数量
            /// 
            [Display(Name = "生产数量")]
            [DisplayFormat(DataFormatString = "18,6")]
            [Column("production_number", TypeName = "decimal")]
            [Editable(true)]
            public decimal? ProductionNumber { get; set; }
    
            /// 
            /// 是否采用反应计划 0否 1是
            /// 
            [Display(Name = "是否采用反应计划 0否 1是")]
            [Column("is_adopt_response_plan", TypeName = "int")]
            [Editable(true)]
            public int? IsAdoptResponsePlan { get; set; }
    
            /// 
            /// 异常描述
            /// 
            [Display(Name = "异常描述")]
            [MaxLength(512)]
            [Column("exception_description", TypeName = "nvarchar(512)")]
            [Editable(true)]
            public string ExceptionDescription { get; set; }
    
            /// 
            /// 记录人名字
            /// 
            [Display(Name = "记录人名字")]
            [MaxLength(64)]
            [Column("recorder_name", TypeName = "nvarchar(64)")]
            [Editable(true)]
            public string RecorderName { get; set; }
    
            /// 
            /// 批处理号
            /// 
            [Display(Name = "批处理号")]
            [MaxLength(32)]
            [Column("batch_no", TypeName = "varchar(32)")]
            [Editable(true)]
            public string BatchNo { get; set; }
    
            /// 
            /// 审核人id
            /// 
            [Display(Name = "审核人id")]
            [Column("checker_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? CheckerId { get; set; }
    
            /// 
            /// 记录人id
            /// 
            [Display(Name = "记录人id")]
            [Column("recorder_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? RecorderId { get; set; }
    
            /// 
            /// 开单部门名字
            /// 
            [Display(Name = "开单部门名字")]
            [MaxLength(64)]
            [Column("billing_dept_name", TypeName = "nvarchar(64)")]
            [Editable(true)]
            public string BillingDeptName { get; set; }
    
            /// 
            /// 反应计划
            /// 
            [Display(Name = "反应计划")]
            [MaxLength(512)]
            [Column("adopt_response_plan", TypeName = "nvarchar(512)")]
            [Editable(true)]
            public string AdoptResponsePlan { get; set; }
    
            /// 
            /// 审核人姓名
            /// 
            [Display(Name = "审核人姓名")]
            [MaxLength(64)]
            [Column("checker_name", TypeName = "nvarchar(64)")]
            [Editable(true)]
            public string CheckerName { get; set; }
    
            /// 
            /// 批准人id
            /// 
            [Display(Name = "批准人id")]
            [Column("ratifier_id", TypeName = "uniqueidentifier")]
            [Editable(true)]
            public Guid? RatifierId { get; set; }
    
            /// 
            /// 状态0=草稿,1=品质部门审批中,2=工程部门审批中,3=制造部门审批中,4=销售部门审批中,5=品质副总审批中,6=执行中,7=已完结,10=开单部门审核中,11=开单部门批准中  此后为金属元素内
            /// 
            [Display(Name = "状态0=草稿,1=品质部门审批中,2=工程部门审批中,3=制造部门审批中,4=销售部门审批中,5=品质副总审批中,6=执行中,7=已完结,10=开单部门审核中,11=开单部门批准中  此后为金属元素内")]
            [Column("state", TypeName = "int")]
            [Editable(true)]
            [Required(AllowEmptyStrings = false)]
            public int State { get; set; }
    
            /// 
            /// 产品名称
            /// 
            [Display(Name = "产品名称")]
            [MaxLength(64)]
            [Column("product_name", TypeName = "nvarchar(64)")]
            [Editable(true)]
            public string ProductName { get; set; }
    
            /// 
            /// 发生类型(0=首次,1=重复)
            /// 
            [Display(Name = "发生类型(0=首次,1=重复)")]
            [Column("occurrence_type", TypeName = "int")]
            [Editable(true)]
            public int? OccurrenceType { get; set; }
    
            /// 
            /// 生产订单
            /// 
            [Display(Name = "生产订单")]
            [MaxLength(32)]
            [Column("production_order", TypeName = "varchar(32)")]
            [Editable(true)]
            public string ProductionOrder { get; set; }
    
            /// 
            /// 不良率
            /// 
            [Display(Name = "不良率")]
            [MaxLength(8)]
            [Column("rejection_rate", TypeName = "varchar(8)")]
            [Editable(true)]
            public string RejectionRate { get; set; }
    
            /// 
            /// 存放位置
            /// 
            [Display(Name = "存放位置")]
            [MaxLength(32)]
            [Column("storage_location", TypeName = "varchar(32)")]
            [Editable(true)]
            public string StorageLocation { get; set; }
    
            /// 
            /// 完成日期
            /// 
            [Display(Name = "完成日期")]
            [Column("finish_datetime", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? FinishDatetime { get; set; }
    
            /// 
            /// 停线结束时间
            /// 
            [Display(Name = "停线结束时间")]
            [Column("line_stop_time_end", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? LineStopTimeEnd { get; set; }
    
            /// 
            /// 制造时间
            /// 
            [Display(Name = "制造时间")]
            [Column("manufacture_datetime", TypeName = "datetime")]
            [Editable(true)]
            public DateTime? ManufactureDatetime { get; set; }
    
            /// 
            /// 异常单号
            /// 
            [Display(Name = "异常单号")]
            [MaxLength(32)]
            [Column("sheet_number", TypeName = "varchar(32)")]
            [Editable(true)]
            public string SheetNumber { get; set; }
    
            #endregion
            
            #region 显示字段
            #endregion
            
            #region 关联表
            #endregion
            
            #region 子表
            /// 
            /// 异常处理详情
            /// 
            [Display(Name = "异常处理详情")]
            public List<BizExceptionHandlingDetail> BizExceptionHandlingDetail { get; set; }
    
            #endregion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
  • 相关阅读:
    自动化测试之路 —— Appium元素定位
    SpringBoot项目中新增脱敏功能
    npm i 报错 gifsicle pre-build test failed
    hive orc文件读取出错
    steamui.dll找不到指定模块,要怎么修复steamui.dll文件
    Python的__pycache__到底缓存什么?能缓存历史运行结果吗?—— 对PyCache的一点研究
    OGG-01224 Address already in use 问题
    UGUI交互组件InputField
    了解 Oracle 中的主键和外键
    三大O(nlogn)算法分析
  • 原文地址:https://blog.csdn.net/weixin_44231544/article/details/127799428