The conversion of a varchar data type to a datetime data type resulted in an out-of-range value hatası ve çözümü
Merhabalar.
Bir kaç arkadaşım, DateTimePicker'dan tarihi seçtiğinde datagrid'e verinin gelmesini isterken bu hatayı alıyorlarmış.
C#'ta şöyle bir kod yazdığınızı varsayalım:
SqlDataAdapter Da = new SqlDataAdapter ("select sefer_yeri, tarih from Seferler Where tarih = '" + datetimepicker1.Value + "'", baglantim);
Eğer bu sorgudan sonra " The conversion of a varchar data type to a datetime data type resulted in an out-of-range value." diye bir hata alıyor olabilirsiniz.
Hatanın Sebebi
Tarih formatından kaynaklanıyor. SQL Server'da tarih formatı yıl ay gündür. Ancak datetimepicker'da öyle değil. Bunu değiştirmeniz gerekir.
Hatanın Çözümü
C#'ta sorguyu yazmadan önce bir değişken tanımlayın. Aşağıdaki kod gayet açıktır.
string tarih = Convert.ToDateTime(datetimepicker1.Value).ToString("yyyy-MM-dd");
Bunu yazdıktan sonra tarih değişkenini sorguya dahil edin. Yani artık sorgumu aşağıdaki gibi oluyor:
SqlDataAdapter Da = new SqlDataAdapter ("select sefer_yeri, tarih from Seferler Where tarih = '" + tarih + "'", baglantim);