时间:2024-10-22 11:02
人气:
作者:admin
在页面进行删除对象操作时报错,列名无效:
列名 'IsDeleted' 无效。
列名 'CreateTime' 无效。
列名 'Name' 无效。
数据库:SqlServer Express 16
ORM框架:SQLSugar
Dictionary<string, object> dt = new Dictionary<string, object>();
dt.Add("IsDeleted", true);
dt.Add("CreateTime", DateTime.Now);
dt.Add("Name", this.currentUserName);
result = db.Updateable(dt).AS(this.TableName).Where(" ID = '" + key + "'", null).ExecuteCommand();
数据库中列名全部为大写,因此直接反编译修改模块,改成大写,替换后再次测试,问题解决:
dt.Add("ISDELETED", true);
dt.Add("CREATETIME", DateTime.Now);
dt.Add("NAME", this.currentUserName);

如图,报错的项目数据库排序规则为CS,未报错的项目排序规则为CI。CI/CS指 是否区分大小写,CI不区分,CS区分。
方法一:注意数据库的排序规则配置,使用CI;
方法二:调整框架代码,区分大小写,与数据库列名严格一致;
转载请注明出处,欢迎交流。