我很难让领先的零点坚持下去。
我有一份准备好的声明,如下所示:
c:
\main
\sub
\working
\sass
config.rb
test.scss
\test
style.css
通常具有前导零的相关字段是“系统”。它是用这条线构建的:
SQLiteCommand insertSQL = new SQLiteCommand(@"INSERT INTO Inventory(
AssetTag, Vendor, Device, Attribute, DeviceType, System, Location, OnLoan, Notes, LastModifiedTime, LastModifiedPerson, IsDeleted)
VALUES (@AssetTagParam, @VendorParam, @DeviceParam, @AttributeParam, @DeviceTypeParam, @SystemParam, @LocationParam, @OnLoanParam, @NotesParam, @LastModifiedTimeParam, @LastModifiedPersonParam, @IsDeletedParam)", conn);
如果我在Item.System提取的文本框中输入'0159',在运行时我确实确认Item.System确实在准备SQL语句时保持'0159'的值。这让我认为这种类型,我将其转换为DB,System.Data.DbType.String,这是错误的。使用SQLiteStudio将数据直接输入数据库会保留前导零。
我不知道从哪里开始。 System.Data.DbType中没有另一种类型,它是一个更高的文本抽象,供我尝试。我不确定从哪里开始。我怎样才能在这里保留我的前导零?
修改:输入说明
var SystemParam = new SQLiteParameter("@SystemParam", System.Data.DbType.String) { Value = item.System };
在数据库方面,除了AssetTag和AssetID之外,所有字段都是STRING类型,它们是INTS。 OnLoan和IsDeleted是BOOLEAN。
答案 0 :(得分:2)
可能你正陷入this thread中描述的同一陷阱。
简而言之,SQLite不理解" STRING
"数据类型,在这种情况下,它假定默认为NUMERIC
" affinity" (请记住,与大多数数据库相反,SQLite没有列类型,只有少数几个'亲和力')。
尝试使用正确的(" TEXT
")说明符重新创建表格。