DateTime Oveload

rai*_*asa 2 c# asp.net

我想在我的标签示例中使用此输出:2016年4月20日,但我得到4/20/2016:1200:00:AM

我试图修改它,但无法解决这个错误

没有方法的重载需要1个参数导致此代码

lblDate.Text = rdr.GetValue(4).ToString("MMMM d,yyyy");
Run Code Online (Sandbox Code Playgroud)

这是整个代码.

 private void GetData()
    {
        SqlConnection con = new SqlConnection("Data Source = localhost\\SQLEXPRESS;Initial Catalog = MejOnlineManagementDB00;Integrated Security=True;");
        con.Open();
        SqlCommand cmd = new SqlCommand(@"SELECT orderProdName,orderProdType,orderQuantity,orderStatus,orderDateOrdered
                                        FROM orders2
                                        WHERE orderCustomer='"+DropDownList1.SelectedItem.Value.ToString()+"'",con);
        SqlDataReader rdr = cmd.ExecuteReader();
        if (rdr.HasRows)
        {
            while (rdr.Read())
            {
                lblProdName.Text = rdr.GetValue(0).ToString();
                lblProdType.Text = rdr.GetValue(1).ToString();
                lblQuantity.Text = rdr.GetValue(2).ToString();
                lblStatus.Text = rdr.GetValue(3).ToString();
                lblDate.Text = rdr.GetValue(4).ToString("MMMM d,yyyy");
            }
        }
        con.Close();
    }
Run Code Online (Sandbox Code Playgroud)

ckr*_*zek 6

问题是您正在使用Object.ToString()方法.这个方法没有参数.如果要将其转换为日期,可以尝试这样做:

DateTime dt = DateTime.Parse(rdr.GetValue(4).ToString())
lblDate.Text = dt.ToString("MMMM d,yyyy");
Run Code Online (Sandbox Code Playgroud)

编辑:

请注意,如果数据库中的日期列包含空值,则解析方法将引发异常.因此必须测试null.

String s = Convert.ToString(rdr.GetValue(4));
if(!String.IsNullOrEmpty(s))
{
   DateTime dt = DateTime.Parse(s);
   lblDate.Text = dt.ToString("MMMM d,yyyy");
}
Run Code Online (Sandbox Code Playgroud)