2010-11-19 5 views
0

リモートデータベースとやりとりするWindowsフォームアプリケーションがあります。データベースには2つのテーブルが含まれています。C#(date)とDateTimePickerを使用したMySQLデータフォーマット

ユーザは、MaskedTextBoxに日付を入力し、ボタンをクリックしてstatmentを発行することでレコードを更新することができます。しかし、MySQLの日付列はYYYY-MM-DDの形式をとっているので、maskedtextboxを使用するのは面倒です。したがって、ユーザは、マスクされたテキストボックスに2010-11-15のように入力する必要があります(これは機能しますが、この形式には直感的ではありません)。私はDateTimePickerを代わりに使いたいですが、これは "text"プロパティを制御するので、DD-MM-YYYYという形式になります。文字列にキャストすると、15-11-2010のようになります。 MySQLは明らかにこれを正しく処理しません。

これを処理する最善の方法は、Datetimepicker.textから3つの数値(日、月、年)を解析する必要がありますか?またはMySQLの日付が取る実際の形式を変更する方法ですか?または、返された日付の形式を変更できるようにSQL文を編集できますか?事前に

commandinsert.CommandText = "insert into jobs (id,date) values ('" + comboBox1.Text + "','" + maskedTextBox1.Text + "')"; 

ありがとう:ここ

私は場合にはそのいずれかの使用のを使用していたSQLなステートメントです。

+0

SQLインジェクションの脆弱性があります。 – SLaks

答えて

1

パラメータを使用してテキストを渡す必要があります。
これで、DateTimePickerのSelectedDateプロパティをパラメータとして直接渡すことができ、MySQLクライアントは正しいデータを送信します。

これにより、SQLインジェクション攻撃も防止されます。

詳細については、here

関連する問題