-1

私は動きを経験してきましたが、まだこれを正しく行うことができないようです. Access データベースから入力されたグリッドビューにテキスト ボックスがあります。これらはすべて日時値です。バックエンド コードでは、これらすべての値をループしてから、条件付き書式を適用しようとしています。なんらかの理由で、グリッドビューのこれらのテキストボックスから値を取得できません。取得すると、日時ではなく文字列としてアプリに表示されます。変換は、「文字列は有効な DateTime として認識されませんでした」という同じエラーと同様に無駄です。ポップアップし続けます。

グリッドビュー テキスト ボックスから値を取得し、それらを文字列から日時形式に変換する方法についてのアイデアはありますか?

これまでのコードは次のとおりです...

for (int p = 0; p < rowscount; p++)
 {
     var myLabel2 = (TextBox)GridView1.Rows[p].Cells[0].FindControl("Label2");
     var myLabel4 = (TextBox)GridView1.Rows[p].Cells[0].FindControl("Label4");

     DateTime start = Convert.ToDateTime(myLabel2.Text).Date;
     DateTime now = DateTime.Now.Date;
     DateTime end = Convert.ToDateTime(myLabel4.Text).Date;

     if (now >= start && now <= end)
     {
         myLabel2.BackColor = Color.Chartreuse;
         myLabel4.BackColor = Color.Chartreuse;
         myLabel7.BackColor = Color.Chartreuse;
         myLabel9.BackColor = Color.Chartreuse;
     }
     else
     {
         myLabel2.BackColor = Color.White;
         myLabel4.BackColor = Color.White;
         myLabel7.BackColor = Color.White;
         myLabel9.BackColor = Color.White;
     }
 }

前もって感謝します

4

3 に答える 3

0
DateTime date = DateTime.ParseExact(myLabel2.Text, "dd/MM/yyyy", null);
于 2012-04-08T15:21:33.570 に答える
0

これは日時形式の問題のようです。GridView は、ある方法で datetime を文字列に変換し、別の形式を使用して datetime に変換しようとしています。Convert.ToDateTimeを使用する代わりにDateTime.ParseExact(String, String, IFormatProvider):

CultureInfo provider = CultureInfo.InvariantCulture;
string format = "dd/MMM/yyyy h:mm tt zzz";
DateTime result = DateTime.ParseExact(dateString, format, provider);

ケースに当てはまるフォーマットを使用してください。

于 2012-04-08T14:40:55.713 に答える