2011-09-13 13 views
0
if (txt_SendAt.Text != null) 
{ 
    //string SendAt_date = txt_Respondby.Text; 
    DateTime Send_date = Convert.ToDateTime(txt_SendAt.Text); 

    param[15] = new MySqlParameter("@SendDate", MySqlDbType.DateTime); 
    param[15].Value = Send_date; 
    command.Parameters.AddWithValue("@SendDate", Send_date);  

} 
else 
{ 
    param[15] = new MySqlParameter("@SendDate", MySqlDbType.DateTime); 
    param[15].Value = now; 
    command.Parameters.AddWithValue("@SendDate", now); 

} 

私は、カレンダーから日付と時刻を選択するテキストボックスを持っています。テキストボックスを空のままにすると、else条件のステートメントが実行されるはずですが、ifステートメントが実行されます。どこが間違っていますかCでの条件文の問題

空白のままにするとこのエラーが発生します。文字列は有効なDateTimeとして認識されませんでした。

+0

にtxt_SendAtは、テキストボックスやテキストボックスのテキストであれば変更してみてくださいする必要がありますか? –

+0

私の推測では、 'now'はDateTime変数です(おそらくDateTime.Nowに設定されています)。それは正しいのですか、それとも文字列ですか?文字列の場合、それは何の価値ですか? –

答えて

5

テキストボックス自体がnullの場合は、それがテキストだ、ではないテストしている:

if (string.IsNullOrEmpty(txt_SendAt.Text) == false) 
+0

OPのコードのif条件で使用されている場合、これは "!string.IsNullOrEmpty(txt_SendAt.Text)"にする必要があります。 – Polyfun

+0

編集ありがとうございます。 – stuartd

2

試してみてください。

if (!string.IsNullOrEmpty(txt_SendAt.Text)) 
+0

次の条件を削除する必要があります。 –

+0

txt_SendAtがTextBox .... – Tigran

4

使用String.IsNullOrWhitespace(txt_SendAt.Text)代わりにnullをチェックします。

コントロールがnullであるかどうかを確認しています。 nullではありません。テキストボックスのTextプロパティに値があるかどうかを確認する必要があります。したがって、IsNullOrEmptyまたはIsNullOrWhitespaceを使用する場合は、コントロールのプロパティがnull(おそらく)であるか、空白のスペース(またはスペース)の場合、デュアルチェックが行われます。

1

txt_SendAtは、TextBoxコントロールを指します。あなたはtxt_SendAt.Text

0

をしたいあなたは

if ((txt_SendAt.Text != null)||(txt_SendAt.Text.Trim() != ""))