2012-11-19 42 views
-1

可能重複:
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value一個char數據類型到datetime數據類型的轉換導致外的範圍內的日期時間值

我的任務是,以顯示所有名稱和出生日期。我的條件是基本的,但之間的時間,我選擇日期和按鈕我看到異常進入,
我的代碼是

SqlConnection con = new SqlConnection("my connection "); 

SqlDataAdapter da = new SqlDataAdapter("select name,date from date where date between'"+ Convert.ToDateTime(datePicker2.SelectedDate)+"' and '"+ Convert.ToDateTime(datePicker3.SelectedDate)+"'",con); 

DataSet ds = new DataSet(); 

da.Fill(ds, "entry"); 

da.Dispose(); 

dataGrid1.DataContext = ds.Tables["entry"].DefaultView; 

plz幫助我解決代碼錯誤,寫正確的代碼。這是一個WPF機應用

回答

0

日期時間的格式應該是SQL有效,格式可以像年月日,那就是:

SqlConnection con = new SqlConnection("my connection "); 

SqlDataAdapter da = new SqlDataAdapter("select name,date from date where date between'"+ Convert.ToDateTime(datePicker2.SelectedDate.ToString("yyyyMMdd")+"' and '"+ Convert.ToDateTime(datePicker3.SelectedDate.ToString("yyyyMMdd"))+"'",con); 

DataSet ds = new DataSet(); 

da.Fill(ds, "entry"); 

da.Dispose(); 

dataGrid1.DataContext = ds.Tables["entry"].DefaultView; 
+0

約佔到我們的代碼中發現錯誤,沒有超載的方法「的ToString」採取「1」參數 – user1464596

+0

這是向正確的方向一步 - 但真的** **很好的解決辦法是使用** parametrized queries **並忘記字符串格式的日期一共.... –

+1

我完全同意@marc_s,謝謝。 – Boomer

0

從你上面的代碼,SQL語句的一部分 - 「選擇的名字,從日B_DATE地方之間的日期」

你能不能請確保以下幾點:

  1. 是「日期」一欄那裏「日期」表?它應該是「b_date」而不是「date」還是它是正確的?

  2. 你可以請你發佈什麼異常/錯誤?

感謝

+0

將char數據類型轉換爲日期時間數據類型導致超出範圍的日期時間值 – user1464596

+0

@Boomer建議的代碼應該已工作。可否請您嘗試SQL查詢下面的代碼: 'code' SqlDataAdapter的大=新SqlDataAdapter的(「從日期選擇名稱,日期,其中間」日期‘+ Convert.ToDateTime(datePicker2.SelectedDate.ToString(’ MM/dd/yyyy「))+」'and'「+ Convert.ToDateTime(datePicker3.SelectedDate.ToString(」MM/dd/yyyy「))+」'「,con); 'code' –

+0

根據我的代碼我發現錯誤\t方法'ToString'沒有重載需要'1'參數 – user1464596

相關問題