我有一个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
。
这也是我背后的代码。
答案 0 :(得分:0)
如果要插入数据的列是DateTime类型,则需要插入有效的日期时间。字符串不够用。
SqlPastPlaces.InsertParameters["Month"].DefaultValue = DateTime.Now;
我不会使用varchar或整数列来存储日期部分,只是因为它会导致很多额外的工作,一旦你需要更改它来显示日期和月份,或年份和月。 存储日期并查询/显示您需要的数据。
答案 1 :(得分:0)
找到了铜管,这在我看来。以下行导致了问题。
<asp:Parameter DbType="Date" Name="Month" />
通过将其更改为以下内容,现在可以正常使用
<asp:Parameter DbType="String" Name="Month" />
我完全忘了改变这一点。