Question

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.

Était-ce utile?

La solution

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.

Autres conseils

Use:

    deliveryDate[i] = ((DateTime)dt.Rows[i[1]).
ToString("dd/M/yyyy",CultureInfo.InvariantCulture);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top