c# - 10 位数字的值未导入 SQLite
问题描述
所以,我不知道该尝试什么了,但这是我目前面临的问题:
我有一个 C# WPF 应用程序,它从服务器导入一个 .csv 文件,读取它,然后将其上传到 SQLite,因为添加了一个新表,所以我遇到了 2 列的一些问题,这些列都是数字的,并且包含 8 到 10 位数字。包含 8 位和 9 位数字的单元格没有问题,但是当我尝试上传 10 位数字时,我在 SQLite 中得到一个空白单元格。
最烦人的是没有错误信息。我试图以数字、整数、文本的形式保存到 SQLite 中……这里似乎没有任何效果。
这是我打开 .csv 文件后的代码:
//The code before this part is basically using Jet.OleDb, connect to the file and create a DataSet and DataTable, these contain the right values
DataSet ds = new DataSet("CSVFile");
adapter.Fill(ds);
var dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows) {
var eDel = dr[(0)].ToString();
var eRef = dr[(1)].ToString();
cmd.CommandText = "INSERT INTO delInc (DELIVERY,REFERENCEDOC) VALUES (@cDel,@cRef)";
cmd.Parameters.AddWithValue("@cDel", eDel);
cmd.Parameters.AddWithValue("@cRef", eRef);
}
cmd.ExecuteNonQuery();
在我的 .csv 文件中,我有:
DELIVERY | REFERENCEDOC
121859657 | 59151654
121859658 | 59183792
8185619953 | 7719802361
8185619954 | 380184551
但是,在 SQLite 我只看到:
DELIVERY | REFERENCEDOC
121859657 | 59151654
121859658 | 59183792
|
| 380184551
这是我的 DDL:
CREATE TABLE delInc
(
DELIVERY NUMERIC,
REFERENCEDOC NUMERIC
);
正如我之前所说,我也尝试过TEXT和INTEGER,两者都不起作用。
解决方案
您将无法将值传递给2147483647
INTEGER,因为它只是一个 4 字节的数字系统,但是您可以使用 8 字节的数字系统 BIGINT 来修复它。
有关更多信息,请参见此处https://docs.oracle.com/cd/E17952_01/mysql-5.0-en/integer-types.html
推荐阅读
- java - 如何通过使用@Cacheable 注解实现以下行为?
- excel - 使用 VBA 将文本从 Excel 导出到 PowerPoint
- r - 使用 for loop R 创建多个 ggplots 的问题
- node.js - 如何在不超过免费部署层级的情况下部署 Node.js 代码以按时间间隔运行
- java - 转换为三元运算符时条件改变行为?
- javascript - Typescript JSDoc ...Rest 类型语法
- c# - 程序在收到异步结果之前结束
- c++ - 每 4 秒获取连接的 wifi 连接的名称
- amazon-web-services - 多租户 b2b 无服务器应用程序中每个租户的自定义子域
- marklogic - Marklogic DataHub 管理 GUI