我有这个功能ExecuteSqlParameterizedQuery
,下面是我的查询:
Queryobj.ExecuteSqlParameterizedQuery(String.Format("INSERT INTO tbladd(ID,MyDateTime,Birthday)values({0},@dta, @dtb)", m_Id, MyDateTime.ToString(), MyBirthday.ToString());
MyDateTime
是DateTime
数据类型。MyBirthday
是DateTime
数据类型。
这是我的功能:
readonly SqlConnection con = new SqlConnection(PC_Software.Properties.Settings.Default.DbConnectionString);
public void ExecuteSqlParameterizedQuery(string SQL, string measdt, string dob)
{
try
{
using (var cmd = new SqlCommand())
{
con.Open();
cmd.Connection = con;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@dta", measdt);
if(dob != "0DATA#")
{
cmd.Parameters.AddWithValue("@dtb", dob);
}
cmd.CommandText = SQL;
cmd.ExecuteNonQuery();
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
这向我展示了这个特殊的错误:the conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value. the statement has been terminated.
我试图找到问题,但无法理解如何对我的代码进行更改以纠正问题。
编辑:
我也有这个作为我的日期时间界面:
public interface enn
{
DateTime MyDateTime
{
get;
set;
}
}
日期时间声明是这样的:
DateTime? MyBirthday
{
get;
set;
}