我有一些值的本地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)
代替string
或text
修复此问题