仅显示Date.Now的月份名称

时间:2015-10-26 08:36:35

标签: c# asp.net

我有一个asp.net应用程序,只需按一下按钮即可写入我的数据库。我遇到的问题是,对于日期列,我想要显示的是月份名称而不是其他任何内容。

我已经尝试了以下但我总是收到一条消息说“字符串未被识别为有效的DateTime。”

第一个解决方案

SqlPastPlaces.InsertParameters["Past_Place"].DefaultValue = ((TextBox)txtDestination).Text;
SqlPastPlaces.InsertParameters["Month"].DefaultValue = DateTime.Now.ToString("MMMM");

SqlPastPlaces.Insert();

第二个解决方案

var CurrentMonth = String.Format("{0:MMMM}", DateTime.Now).ToString();
SqlPastPlaces.InsertParameters["Past_Place"].DefaultValue = ((TextBox)txtDestination).Text;
SqlPastPlaces.InsertParameters["Month"].DefaultValue = CurrentMonth;

SqlPastPlaces.Insert();

第二个解决方案,当我调试时确实给了'十月'但是没有在我的插入内写入我的数据库。

两个解决方案都死在SqlPastPlaces.Insert()上。我的数据库中的列设置为varchar

这也是我背后的代码。

2 个答案:

答案 0 :(得分:0)

如果要插入数据的列是DateTime类型,则需要插入有效的日期时间。字符串不够用。

SqlPastPlaces.InsertParameters["Month"].DefaultValue = DateTime.Now;

我不会使用varchar或整数列来存储日期部分,只是因为它会导致很多额外的工作,一旦你需要更改它来显示日期和月份,或年份和月。 存储日期并查询/显示您需要的数据。

答案 1 :(得分:0)

找到了铜管,这在我看来。以下行导致了问题。

<asp:Parameter DbType="Date" Name="Month" />

通过将其更改为以下内容,现在可以正常使用

<asp:Parameter DbType="String" Name="Month" />

我完全忘了改变这一点。