C# 从两个文本框中插入日期和时间

C# 从两个文本框中插入日期和时间,c#,sql,asp.net,sql-server-2008,C#,Sql,Asp.net,Sql Server 2008,从两个单独的文本框中插入日期和时间。和连接以保存到数据库。 我已经看过很多关于datetime转换的例子,但是没有得到任何线索。 提前感谢 DateTime-DateTime=Dateconversion.ConvertToDate(txtDate.Text.Trim()); DateTime=Convert.ToDateTime(txtTime.Text); 插入表(日期)值(“+Datetime+”+time+“+time+”) 首先,切勿在用户输入上直接使用Convert.ToDateT

从两个单独的文本框中插入日期和时间。和连接以保存到数据库。 我已经看过很多关于
datetime
转换的例子,但是没有得到任何线索。 提前感谢

DateTime-DateTime=Dateconversion.ConvertToDate(txtDate.Text.Trim());
DateTime=Convert.ToDateTime(txtTime.Text);
插入表(日期)值(“+Datetime+”+time+“+time+”)

首先,切勿在用户输入上直接使用Convert.ToDateTime,因为当输入不能转换为datetime时,它将引发异常。
相反,使用或

第二个,永远不要连接字符串来创建sql语句,因为这是一扇打开的大门。改用

您的代码应该如下所示:

DateTime DateTimeValue;
string DateTimeString = txtDate.Text.Trim() +' '+ txtTime.Text.Trim();
if(DateTime.TryParse(DateTimeString, out DateTimeValue))
{
    using(SqlConnection con = new SqlConnection("ConnectionString")) {
        SqlCommand cmd = new SqlCommand("insert into table(date) values(@Value)", con);
        cmd.Parameters.Add("@Value", SqlDbType.DateTime).value = DateTimeValue;
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}

我建议您在将字符串转换为日期时间对象之前连接字符串


希望有帮助。请使用TryParseExact,不要直接将用户输入转换为日期时间,这可能会导致严重问题。

在将其转换为日期时间对象之前,是否考虑过将这两个字符串放在一起?您还可以使用DateTime.ParseExact,因此可以确保它将以您提供的格式对其进行解析。有关详细信息,请参阅:字符串未被识别为有效的日期时间。我是通过使用上面的代码得到这个错误的。您能提供一个您试图转换的日期的示例吗?日期来自Ajax工具包日历,如“06/19/2015 12:00:00”ASP:TextBox支持日期时间作为模式,在大多数浏览器中,这将允许用户在日历上选择时间和日期,并且格式将保持一致,因此避免了异常。由于他使用ASP文本框,他可以使用DateTime“模式”,然后获得输入字符串的一致格式。@MalteR自从我的ASP.net时代以来,已经很久没有使用过该选项了。如果年份不是闰年,它是否也会阻止您插入日期,如2月29日?我必须将日期和时间值传递给其他类文件。。DateTime日期时间值;字符串DateTimeString=txtDate.Text.Trim()+“”+txtTime.Text.Trim();如果(DateTime.TryParse(DateTimeString,out DateTimeValues)){ViewState[“DateTime”]=Convert.ToDateTime(DateTimeString);}DateTime DateTime=(DateTime)ViewState[“DateTime”];它在跟踪模式下工作。当我直接运行时,它正在工作,所以在将它们传递到另一个类或在另一个类内部之前,将它们转换为datetime,这没有任何区别。它工作正常,但在每个页面刷新中都完成了,而不是回发