2013-03-12 51 views
-5

我在SQL中超出范围值时遇到问题,当我在C#Debug中运行它时。但选择与日期时间转换,直接在SQL中工作。我能做什么..?SQL超出C#中的值范围

WHERE (Edu_Table_1.chatardeba = CONVERT(DATETIME, '" + datesList[dd] + "', 103)) 

... 

List<DateTime> datesList = new List<DateTime>(); 
DataTable dt1 = DataObjects.FetchFromDatabase(String.Format("SELECT date from dates_table", magalkurseli, examType), this.serverAddress, this.dbCatalog); 
if (dt1 != null && dt1.Rows.Count > 0) 
{ 
    foreach (DataRow dr in dt1.Rows) 
    { 
     datesList.Add(Convert.ToDateTime(dr["tarigi"])); 
    } 
} 
+0

什么日期时间值你想转换? – 2013-03-12 22:42:35

+4

有没有机会让我们看看? – 2013-03-12 22:42:38

+2

你可以发布代码,例如... – 2013-03-12 22:42:41

回答

1

这是很容易的问题解决了,这发生,因为你的数据库格式是不同形式的.Net日期时间fromat(你可以发送一天,一个月) 所有你需要做的是:

  • 打开SQL管理工作室和运行“选择GETDATE()”它会返回您的数据库日期时间格式,
  • 当您收到或发送日期到数据库确保将其格式更改为相同的数据库格式。

    //例如,日期时间在数据库是 13-03-2013 净日期对象 dt.toString( “DD-MM-YYYY”)的变化//格式;

+0

谢谢..会尝试 – 2013-03-12 23:13:16

2

这里没有很多的信息在这里继续下去,但根据我看到其他开发人员遇到的问题,我可以对怎么回事猜...

默认值.NET中的DateTime对象不在sql中的datetime数据类型的有效范围内。这通常发生在您具有不可计数的DateTime属性或参数(您未初始化为有效值(或设置为default(DateTime)))时发生。

的溶液,通常是使用一个空的列和在DateTime?任何相关C#对象总是初始化DateTime属性以该SQL期望范围内的值。

+0

好的,我会尽力,谢谢 – 2013-03-12 22:56:12