Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数据库读取数据并设置为标签时,更改C#中的日期格式_C#_Asp.net_Sql Server_String_Date - Fatal编程技术网

从数据库读取数据并设置为标签时,更改C#中的日期格式

从数据库读取数据并设置为标签时,更改C#中的日期格式,c#,asp.net,sql-server,string,date,C#,Asp.net,Sql Server,String,Date,我试图从数据库中读取日期字段,并将其设置为标签字段。我使用下面的代码 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString); con.Open(); SqlCommand cmd = new SqlCommand("select BirthDate from Student where Name=@name", con); cm

我试图从数据库中读取
日期
字段,并将其设置为标签字段。我使用下面的代码

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
con.Open();

SqlCommand cmd = new SqlCommand("select BirthDate from Student where Name=@name", con);
cmd.Parameters.AddWithValue("@name", "Mano");

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

lblName.Text = dt.Rows[0]["Date"].ToString();
但这将以
02-05-1991 00:00:00
格式显示标签中的数据值,但我希望以
dd-mm-yyyy
格式显示它,如
05-02-1991
。因此,我尝试了以下代码:

lblName.Text = dt.Rows[0]["BirthDate"].ToString("dd-mm-yyyy");
但它显示了这个错误:

方法ToString没有重载,只接受1个参数


如何更改格式?

您需要将日期值视为DateTime,然后从具有所需格式选项的DateTime结构中调用ToString重载

实际上,您正在将行值转换为字符串,而字符串不知道如何格式化日期

DateTime t = dt.Rows[0].Field<DateTime>("Date");
lblName.Text = t.ToString("dd-MM-yyyy");
DateTime t=dt.Rows[0]。字段(“日期”);
lblName.Text=t.ToString(“dd-MM-yyyy”);

另外,请注意月份部分的正确格式。它是大写的
M
。小写的
m
表示分钟。

假设
生日
表示有效的
日期时间
,请在调用
ToString()之前将其转换


您当前正在调用对象类上的
ToString()
方法,而不是
DateTime
类,因此,没有重载允许使用日期格式化程序。

它的工作im在SQL表中使用
date
格式。值为
05-02-1991
,但在C中,当我给出格式为
dd mm yyyyy
时,它在标签中显示为
02-05-1991
这是否意味着SQL将
date
格式存储为
mm dd yyyyy
,这意味着给定的格式字符串是错误的,它应该是
dd-MM-yyyy
,因为在DateTime格式中
MM
表示分钟而不是月份。
lblName.Text = Convert.ToDateTime(dt.Rows[0]["BirthDate"]).ToString("dd-mm-yyyy");