문제

I am having some problem when trying to format DateTime in Asp.net. I wanted the date to display as 18/1//2014 instead of 18/1/2014 12.00 AM. Here is the code:

DataTable dt = new DataTable();
        dt.Columns.Add("totalQuantity");
        dt.Columns.Add("deliveryDate");

        for (int count = 0; count < catSumList.Count; count++)
        {
            DataRow dr = dt.NewRow();
            dr["totalQuantity"] = catSumList[count].productQuantity;
            dr["deliveryDate"] = catSumList[count].deliveryDate;
            dt.Rows.Add(dr);
        }

        string[] deliveryDate = new string[dt.Rows.Count];
        decimal[] totalQuantity = new decimal[dt.Rows.Count];
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            totalQuantity[i] = Convert.ToInt32(dt.Rows[i][0]);
            deliveryDate[i] = dt.Rows[i][1].ToString("dd/M/yyyy", CultureInfo.InvariantCulture);
        }

lcCategory.Series.Add(new AjaxControlToolkit.LineChartSeries { Data = totalQuantity });
        lcCategory.CategoriesAxis = string.Join(",", deliveryDate);
        lcCategory.ChartTitle = string.Format(categoryName);
        lcCategory.Visible = true;

However, it gives me an error message at this line:

deliveryDate[i] = dt.Rows[i][1].ToString("dd/M/yyyy", CultureInfo.InvariantCulture);

The error message is No overload method ToString takes 2 arguments. I wonder is there any other way to format it? My data type for deliveryDate in database is DateTime. Thanks in advance.

도움이 되었습니까?

해결책

Since you are working with DataTables which are weakly typed and not recommended to be used you will need to first cast to a DateTime before being able to apply any format:

deliveryDate[i] = ((DateTime)dt.Rows[i][1]).ToString("dd/M/yyyy", CultureInfo.InvariantCulture);

The Rows property returns an object which you need to cast.

다른 팁

Use:

    deliveryDate[i] = ((DateTime)dt.Rows[i[1]).
ToString("dd/M/yyyy",CultureInfo.InvariantCulture);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top