C# 如何将从数据库检索的smalldatetime转换回smalldatetime以重新发布到数据库

C# 如何将从数据库检索的smalldatetime转换回smalldatetime以重新发布到数据库,c#,sql,visual-studio,C#,Sql,Visual Studio,我有一个表单,它从我的“smalltime”类型的数据库中获取了一个项,我想将它作为“smalldatetime”重新添加到另一个数据库中,但是我遇到的问题是,将我的项读取为字符串。我不确定要采取什么方法来转换这一点,但到目前为止,我有以下几点: var checkOutDate = Convert.ToDateTime(ddlCheckOutDate.Text); sl.ReqCheckOutDate = checkOutDate; 有人能帮我克服这个障碍吗?您报告的问题是由于文化差异造成的

我有一个表单,它从我的“smalltime”类型的数据库中获取了一个项,我想将它作为“smalldatetime”重新添加到另一个数据库中,但是我遇到的问题是,将我的项读取为字符串。我不确定要采取什么方法来转换这一点,但到目前为止,我有以下几点:

var checkOutDate = Convert.ToDateTime(ddlCheckOutDate.Text);
sl.ReqCheckOutDate = checkOutDate;

有人能帮我克服这个障碍吗?

您报告的问题是由于文化差异造成的。您使用的是美国格式的日期,当前区域性设置为英国或类似国家,因此它认为您使用的是日/月/年,这使得2013年12月14日为日=月=年=年,因此无效

使用将允许您控制日期的精确转换:

CultureInfo provider = CultureInfo.InvariantCulture;
string dateAsText = "12/14/2012 12:00:00 PM";
DateTime something = DateTime.ParseExact(dateAsText, "MM/dd/yyyy hh:mm:ss tt", provider);

如果要将它从一个DB移动到另一个DB,为什么会涉及文本框?此外,为什么会涉及文本?您所需要的只是
DateTime
或可能的
DateTimeOffset
。我从一个数据库中获取它,并在dropdownlist中使用。用户可以选择一个。我想把它放在另一个数据库@jonsketwell@Belogix中,我试图将它作为smalldatetime类型捕获。哪一个仅仅是日期和时间,因为它是从数据库中获取的,所以代码被更改为猜测您正在尝试读取、编辑和写入?您在写回时遇到了什么错误/问题?这是我在测试表单“字符串未被识别为有效日期时间”时得到的结果。好了,现在我们开始讨论真正的问题!如果您调试txtDateTime.Text(或任何控件的名称)的值是多少?它是一个下拉列表,因此用户只需选择一个选项12/14/2012 12:00:00 AM