繁体   English   中英

输入字符串的格式不正确asp.net

[英]input string was not in correct format asp.net

我有一个奇怪的错误。 我有一个页面,该页面根据会话中存储的国家/地区值加载值。 它适用于所有其他国家/地区。 仅针对特定国家/地区,它会返回此错误。

protected void populateDDMonth()
{
    int numberOfMonths;
    string monthName;
    string completeCalendarFile = Path.Combine(Request.PhysicalApplicationPath + "admin\\text-files\\", calendarFile);
    TextReader tr = new StreamReader(completeCalendarFile);
    date_classa = tr.ReadLine(); //Get classa end date string
    date_classb = tr.ReadLine(); //Get classb end date string
    DateTime dateConvert_classa = DateTime.Parse(date_classa); 
    DateTime dateConvert_classb = DateTime.Parse(date_classb);
    tr.Close();
    DataTable MonthTable = new DataTable();
    MonthTable.Columns.Add("Month", typeof(string));
    MonthTable.Columns.Add("Date", typeof(string));
    DateTime endMonth = DateTime.Today;
    DDMonth.Items.Clear(); //Clear dropdown in order to re-populate
    string classValue = DDClassType.SelectedValue.ToString();

    if (classValue == "10" || classValue == "12" || classValue == "15")
    {
        endMonth = dateConvert_classa;
    }
    else if (classValue == "9" || classValue == "13" || classValue == "16")
    {
        endMonth = dateConvert_classb;
    }
    if (endMonth.Year > DateTime.Today.Year)
    {
        numberOfMonths = (endMonth.Month + 12) - DateTime.Today.Month;
    }
    else
    {
        numberOfMonths = endMonth.Month - DateTime.Today.Month;
    }
    for (int i = 0; i < numberOfMonths + 1; i++)
    {
        monthName = DateTime.Now.AddMonths(i).ToString("MMM"); //Display month as 3 letter string
        DataRow MonthRow = MonthTable.NewRow();
        MonthRow[0] = monthName.ToString() + " " + DateTime.Now.AddMonths(i).Year.ToString();
        MonthRow[1] = DateTime.Now.AddMonths(i).ToString();
        DDMonth.Items.Add(new ListItem(monthName.ToString() + " " + DateTime.Now.AddMonths(i).Year.ToString(),
        DateTime.Now.AddMonths(i).ToString()));
    }
    if (Session["selectedMonth"] != null)
    {
        DDMonth.SelectedValue = Session["selectedMonth"].ToString();
    }

    if (!Page.IsPostBack)
    {

        DateTime startingDate = DateTime.Parse(DDMonth.SelectedValue.ToString());
        LbCalendarCurrentMonth.Text = startingDate.ToString("MMMM");

    }
}

这是国际文化中的整数转换和转换的普遍问题:

http://support.microsoft.com/kb/942460

DDMonth下拉列表中选择的任何值(如果有)均不是有效日期。

因此,以下代码应正常工作:

DateTime startingDate;
if (DateTime.TryParse(DDMonth.SelectedValue.ToString(), out startingDate)
{
   LbCalendarCurrentMonth.Text = startingDate.ToString("MMMM");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM