簡體   English   中英

如何在SQLite數據庫中查詢日期時間

[英]How can I query datetime in SQLite database

這是我的代碼:

string sql = string.Format("select * from StockInTb  ");

DataTable dt = dataAccess.GetDataTable(sql);
UploadService.UploadClient client = new UploadService.UploadClient();

if (client.UpdateTest(dt))
{
    MessageBox.Show("suceess");
}
else
{
    MessageBox.Show("fail");
}

這是我的dataaccess類:

        private static string connString;
        private static SQLiteConnection conn;

        public SQLiteDataAccess()
        {
            connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        }

        private void OpenConn()
        {
            try
            {
                if (conn == null)
                {
                    conn = new SQLiteConnection(connString);
                }

                if (conn.State != System.Data.ConnectionState.Open)
                {
                    conn.Open();
                }
            }
            catch (Exception ex)
            {
                LogUtil.Log("ex:" + ex.Message);
            }
        }

        private void CloseConn()
        {
            try
            {
                if (conn.State != System.Data.ConnectionState.Closed)
                {
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                LogUtil.Log("ex:" + ex.Message);
            }
        }

public System.Data.DataTable GetDataTable(string sql)
        {
            DataTable dtResult = new DataTable();
            try
            {
                OpenConn();
                SQLiteDataAdapter adpter = new SQLiteDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                adpter.Fill(ds);//here,I got the error.
                if (ds.Tables.Count > 0)
                {
                    dtResult = ds.Tables[0];
                }

            }
            catch (Exception ex)
            {
                LogUtil.Log("ex:" + ex.Message);
            }
            finally
            {
                CloseConn();
            }

            return dtResult;
        }

我得到了錯誤:

無法將字符串識別為有效的DateTime。

數據庫是SQLite,表StockInTb包含一些類型為datetime列。 我找到了一些解決方案,例如datetime.toString(s) ,但這不是我所需要的。

我不知道如何解決這個奇怪的問題。 如果有人知道答案,請告訴我。

謝謝。

您可以使用以下參數,假設您在StockInTb表中有一個名為MyDateTime列,類型為DateTime,則您的查詢應按如下所述進行更改。 請注意, @InputDate將使用Command.Parameters.Add方法添加托架。 在兩個地方都需要使用相同的名稱,您可以直接從DateTime對象設置參數(此處將其命名為InputDate

Command.CommandText = "select * from StockInTb where MyDateTime = @InputDate";

Command.Parameters.Add("@InputDate", InputDate);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM