0

私のWebプロジェクトでは、日付ピッカーで選択された日付を解析し、昨日までデータベースからフェッチされた日付と比較していますが、今日の朝からフォーマット例外がスローされ、問題になる可能性があります。

私のコードは、

  try
        {
            ReportDocument rpt = new ReportDocument();
            DateTime dt = DateTime.Parse(frmtxtdt.Text); // Exception Thrown here
            DateTime dt1 = DateTime.Parse(frmtxtdt.Text);
            DateTime date = DateTime.Parse(DateTime.Today.ToShortDateString());
            DateTime date1 = DateTime.Parse(DateTime.Today.ToShortDateString());
            string frtxt = String.Format("{0:MM-dd-yyyy}", dt);
            string totxt = String.Format("{0:MM-dd-yyyy}", dt1);
            DataSet ds = Namespace.SP.Storedprocedure(frtxt,totxt).GetDataSet();

            if (!IsPageRefresh)
           {
               if (ds.Tables[0].Rows.Count > 0)
               {
                   if(frtxt == ds.Tables[0].Rows[0]["Date"].ToString()
                   && totxt == ds.Tables[0].Rows[0]["Date"].ToString())
                   {

                          ds.Tables[0].TableName = "Passkeys";

                          ds.WriteXml(Server.MapPath("~/XML/Passkeys.xml"));
                          string filename = Server.MapPath("~/Upload/Pkey_rpt.rpt");

                          rpt.Load(filename);
                          rpt.SetDataSource(ds);

                          rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "Passkeys - " + ds.Tables[0].Rows[0]["Date"].ToString());
                    }

            }
            else if(frmtxtdt.Text.Trim() !=null && totxtdt.Text.Trim()!=null)
            {
                if (frtxt == String.Format("{0:dd-MM-yyyy}", date)
                    && totxt == String.Format("{0:dd-MM-yyyy}", date1) 
                    && ds.Tables[0].Rows.Count == 0)
                {

                   ClientMessaging( "Pass Key(s) Not Yet Delivered for the Selected Date...");

                }
                else
                {

                    ClientMessaging( "There is No Schedule for the Selected date....");
                }

            }
         }

        }
        catch (Exception ex)
        {
            lblmsg.Text = ex.Message;
        }
4

3 に答える 3

3

今日は2013 年 6 月13 日です。その日は 12 時かそれ以下だったので、以前は機能していたのでしょう。ピッカーからの日付の形式が、解析時に予想される形式と同じであることを確認する必要があります。

現在、日を月として解析しているようです。

于 2013-06-13T07:43:53.497 に答える
2

解析する予定の日付形式に基づいて、CultureInfo を明示的に指定します。

CultureInfo GBCultureInfo = new CultureInfo("en-GB"); // dd/MM/YYYY
// CultureInfo USCultureInfo = new CultureInfo("en-US"); // MM/dd/YYYY

dt = DateTime.Parse(frmtxtdt.Text,GBCultureInfo);
于 2013-06-13T07:44:43.083 に答える
1

このようにして、コードを配置します

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");//you can change to any country 
  ReportDocument rpt = new ReportDocument();
于 2013-06-13T07:40:26.093 に答える