SQLite.Net-PCL 如何将 DateTime 插入 SQLite
How SQLite.Net-PCL insert DateTime into SQLite
此 class 将由 SQLite.Net-PCL
创建为 table
class Purchase
{
[SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]
public int QId { get; set; }
public DateTime PurchaseDate { get; set; }
public int Qty { get; set; }
}
我需要将这个日期插入 SQLite 数据库中的这个 tblPurchase。
strDate ="2016/08/10"
strTime ="10:17:26"
string[] strAr_Date = strDate.Split('/');
string strYear = strAr_Date[0].ToString();
string strMth = strAr_Date[1].ToString();
string strDay = strAr_Date[2].ToString();
//- 根据 DateTime.Now
重新创建日期
string strDateTime = strDay + "/" + strMth + "/" + strYear + " " + strTime;
DateTime dt = DateTime.Parse(strDateTime);
这个 dt 将被插入 SQLite.Net-PCL :
public static void InsertQueueData(string strContentA, string strContentB)
{
var db = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);
var newItem = new Purchase()
{
PurchaseDate = dt,
Qty = 20
};
db.Insert(newItem);
}
问题:
1) 这个dt (PurchaseDate = dt) 是否会在插入时被SQlite.Net-PCL 转换为SQLite Format yyyy-mm-dd hh:mm:ss?
2) 可以使用这个:
var db = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);
Edit_2:
to use method(1) to insert a DateTime as below:
DateTime dt = DateTime.Parse(strDateTime);
The method must include :
var db = new SQLiteConnection(new SQLitePlatformWinRT(), DBPath,false);
(1)
public static void InsertQueueData(string strContentA, string strContentB)
{
var db = new SQLiteConnection(new SQLitePlatformWinRT(), DBPath,false);
var newItem = new Purchase()
{
PurchaseDate = dt,
Qty = 20
};
db.Insert(newItem);
}
2) The purchase Class must declare in this way :
class Purchase
{
[SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]
public int QId { get; set; }
public string PurchaseDate { get; set; } // Dont use DateTime PurchaseDate
public int Qty { get; set; }
}
Edit_3 <br/>
public static string DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Purchase.sqlite");
public static string strDbName = "Purchase.sqlite";
private void CreateDBNow()
{
var DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Purchase.sqlite");
using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath))
{
conn.CreateTable<Purchase>();
}
}
Please help. Thanks
InEdit_3
使用:
新 SQLite.Net.SQLiteConnection(新 SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath))
Is this dt ( PurchaseDate = dt) will be convert to SQLite Format yyyy-mm-dd hh:mm:ss by SQlite.Net-PCL when insert?
答案是否定的。Datetime
将在 SQLite 中转换为以下格式:
我正在使用 SQLite Toolbox 检查数据。
如果你想把DateTime
转换成yyyy-mm-dd hh:mm:ss
的格式。您需要使用:
//false stands for 'storeDateTimeAsTicks'
//And the table need to be recreated if the table aready exists
db = new SQLiteConnection(new SQLitePlatformWinRT(), DBPath,false);
那么SQLite中的DateTime格式就是这样的:
此 class 将由 SQLite.Net-PCL
创建为 table class Purchase
{
[SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]
public int QId { get; set; }
public DateTime PurchaseDate { get; set; }
public int Qty { get; set; }
}
我需要将这个日期插入 SQLite 数据库中的这个 tblPurchase。
strDate ="2016/08/10"
strTime ="10:17:26"
string[] strAr_Date = strDate.Split('/');
string strYear = strAr_Date[0].ToString();
string strMth = strAr_Date[1].ToString();
string strDay = strAr_Date[2].ToString();
//- 根据 DateTime.Now
重新创建日期 string strDateTime = strDay + "/" + strMth + "/" + strYear + " " + strTime;
DateTime dt = DateTime.Parse(strDateTime);
这个 dt 将被插入 SQLite.Net-PCL :
public static void InsertQueueData(string strContentA, string strContentB)
{
var db = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);
var newItem = new Purchase()
{
PurchaseDate = dt,
Qty = 20
};
db.Insert(newItem);
}
问题:
1) 这个dt (PurchaseDate = dt) 是否会在插入时被SQlite.Net-PCL 转换为SQLite Format yyyy-mm-dd hh:mm:ss?
2) 可以使用这个:
var db = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath);
Edit_2:
to use method(1) to insert a DateTime as below:
DateTime dt = DateTime.Parse(strDateTime);
The method must include :
var db = new SQLiteConnection(new SQLitePlatformWinRT(), DBPath,false);
(1)
public static void InsertQueueData(string strContentA, string strContentB)
{
var db = new SQLiteConnection(new SQLitePlatformWinRT(), DBPath,false);
var newItem = new Purchase()
{
PurchaseDate = dt,
Qty = 20
};
db.Insert(newItem);
}
2) The purchase Class must declare in this way :
class Purchase
{
[SQLite.Net.Attributes.PrimaryKey, SQLite.Net.Attributes.AutoIncrement]
public int QId { get; set; }
public string PurchaseDate { get; set; } // Dont use DateTime PurchaseDate
public int Qty { get; set; }
}
Edit_3 <br/>
public static string DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Purchase.sqlite");
public static string strDbName = "Purchase.sqlite";
private void CreateDBNow()
{
var DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Purchase.sqlite");
using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath))
{
conn.CreateTable<Purchase>();
}
}
Please help. Thanks
InEdit_3
使用: 新 SQLite.Net.SQLiteConnection(新 SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath))
Is this dt ( PurchaseDate = dt) will be convert to SQLite Format yyyy-mm-dd hh:mm:ss by SQlite.Net-PCL when insert?
答案是否定的。Datetime
将在 SQLite 中转换为以下格式:
我正在使用 SQLite Toolbox 检查数据。
如果你想把DateTime
转换成yyyy-mm-dd hh:mm:ss
的格式。您需要使用:
//false stands for 'storeDateTimeAsTicks'
//And the table need to be recreated if the table aready exists
db = new SQLiteConnection(new SQLitePlatformWinRT(), DBPath,false);
那么SQLite中的DateTime格式就是这样的: