0

現在、日時をデータベースに保存しようとしています。ボタンをクリックすると、データベースは現在の日時をデータベースに保存します。いくつかの方法を試しましたが、次のエラーが表示されます。

「'26/6/2013 00:00:00' 付近の構文が正しくありません」

これは私のコードです:

con.Open();
        query = "INSERT INTO dbo.url_map (long_url, expiry_date) Values ('" + tbLongURL.Text + "' , '" + DateTime.Today + "')";
        SqlCommand cmd = new SqlCommand(query, con);
        cmd.Parameters.AddWithValue("@long_url", tbLongURL.Text);
        cmd.Parameters.AddWithValue("@expiry_date", DateTime dt = DateTime.ParseExact(DateTime.Today.ToString(), "dd/MM/yyyy h:mm:ss tt", CultureInfo.InvariantCulture));
        cmd.ExecuteNonQuery();

日時を追加する方法の何が問題になっていますか?

どんな助けでも大歓迎です。

4

4 に答える 4

3

修正されたクエリ-

   query = "INSERT INTO dbo.url_map (long_url, expiry_date) Values ('" + tbLongURL.Text + "', '" + DateTime.Today + "')";
于 2013-06-26T08:07:22.003 に答える
0

現在の日付を SQL サーバーの「expiry_date」列に直接バインドできます。

手順:

  1. テーブルを右クリックし、[デザイン] を選択します。
  2. あなたの場合、目的の列「expiry_date」をクリックします。
  3. 列のプロパティで、[一般] セクションの [既定値またはバインディング] を探します。
  4. 「GETDATE()」をデフォルト値として設定すると、レコードを挿入するたびに現在の日付が値として取得されます。
于 2013-06-26T09:41:53.097 に答える
0

パラメータを使用する場合、クエリは

query = "INSERT INTO dbo.url_map (long_url, expiry_date) Values (@long_url, @expiry_date)";
//this way sqlcommand make sense
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@long_url", tbLongURL.Text);
cmd.Parameters.AddWithValue("@expiry_date", DateTime.Today);
于 2013-06-26T08:07:13.327 に答える