SQLite返回错误的字符串值



我有一些值的本地SQLite DB。我有名字和";description"带有"字符串"的列类型。

32145152174524132151421这样的值可以插入这些列。

当我尝试使用System.Data.SQLite库获取值时,在我使用reader.GetValue().toString()reader.GetString()的情况下,我得到32321541e+35或InvalidCast异常等值,但DB存储正常值。

SQLite和它的CastValues问题简直要了我的命。有人能帮帮我吗?

列"Zakupki_name"one_answers";Zakupki_description"有string数据类型

我写的末尾没有点,但在DB中它保存了点。

"Zakupki_name">

  • Saved in DB - 12323141276876900118036480.
  • 返回代码- 1.23231412768769e+25

"Zakupki_description"

  • Saved in DB - 123444441521613002768384.
  • 返回代码- 1.23444441521613e+23

从数据库获取数据的代码。

SQLiteCommand command = new SQLiteCommand(
@"SELECT Zakupki_id,
Zakupki_name,
Zakupki_description,
Zakupki_update_date,
Zakupki_value_limit
FROM Zakupki;"
,connection);
SQLiteDataReader reader = command.ExecuteReader();
int rowCount = GetRowCount(Tables.Zakupki);
if (rowCount != 0)
{
zakupkis = new List<Zakupki>();
while (reader.Read())
{
zakupkis.Add(new Zakupki(reader.GetInt32(0), reader.GetValue(1).ToString(), reader.GetValue(2).ToString(), DateTime.Parse(reader.GetString(3)), double.Parse(reader.GetValue(4).ToString())));
}
}

向数据库插入值的代码。

public void InsertZakupku(string name, string description,double value_limit)
{
//Добавить закупку
try
{
createConnection();
SQLiteCommand command = new SQLiteCommand(
string.Format(@"INSERT INTO Zakupki (
Zakupki_name,
Zakupki_description,
Zakupki_update_date,
Zakupki_value_limit
) VALUES ('{0}','{1}','{2}','{3}');"
, name, description, DateTime.Now, value_limit), connection); 

command.ExecuteNonQuery();
closeConnection();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
closeConnection();
}
}

使用方法插入值。

sQLiteClient.InsertZakupku(zakupkiName.Text, zakupkiDescription.Text, double.Parse(zakupkiValue.Text));

使用varchar(255)代替stringtext修复此问题

最新更新