0

これが私のコードです:

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)たが、それは必要なものではありません。

この奇妙な問題を解決する方法がわかりません。答えを知っている人がいたら教えてください。

ありがとう。

4

1 に答える 1

0

以下のようにパラメーターを使用できMyDateTimeます。StockInTb テーブルで呼び出された列があり、型が DateTime であると仮定すると、クエリは以下のように変更する必要があります。メソッド@InputDateを使用してベイを追加することに 注意し てください。Command.Parameters.Add両方の場所で同じ名前を付ける必要があり、DateTime オブジェクトからパラメーターを直接設定できます (ここでは、次のように名前が付けられています)。InputDate

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

Command.Parameters.Add("@InputDate", InputDate);
于 2013-05-16T03:25:23.583 に答える