无法将参数日期的值从系统字符串转换为系统日期时间

public Kupac(SqlDataReader reader) { KupacId = Convert.ToInt32(reader["KupacId"]); Ime = reader["Ime"].ToString(); Prezime = reader["Prezime"].ToString(); IdentifikacioniBroj = reader["IdentifikacioniBroj"].ToString(); ClanOd = (DateTime)reader["ClanOd"]; KorisnickoIme = reader["KorisnickoIme"].ToString(); } public int KupacId { get; set; } public string Ime { get; set; } public string Prezime { get; set; } public string IdentifikacioniBroj { get; set; } public DateTime ClanOd { get; set; } public string KorisnickoIme { get; set; } 

您不能将字符串转换为日期时间,但可以使用DateTime的Parse:

 ClanOd = DateTime.Parse(reader["ClanOd"]); 

您可能需要指定文化

 ClanOd = DateTime.ParseExact(reader["ClanOd"], "dd.MM.yyyy", System.Globalization.CultureInfo.GetCultureInfo("de-DE")); 

或试试这个:

 System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("de-DE"); ClanOd = DateTime.Parse(reader["ClanOd"], cultureInfo); 

什么Smith.h.Neil说,但如果值可能是无效日期,我会使用其他版本的try解析。

  string validDate = "2014-04-17"; string invalidDate = "not a date"; DateTime date; DateTime date2; bool isValidDate = DateTime.TryParse(validDate, out date); bool isValidDate2 = DateTime.TryParse(invalidDate , out date2); 

http://msdn.microsoft.com/en-us/library/system.datetime.aspx

假设ClanOd是DateTime替换

 ClanOd = (DateTime)reader["ClanOd"]; 

 DateTime date; bool isValid = DateTime.TryParse(reader["ClanOd"].ToString(), out date); if(isValid) ClanOd = date; 

这一切都来自我的class级KupacAdapter,而我的瘦弱错误就在这里

公共类KupacAdapter {

 public KupacAdapter() { } public static List VratiKupce(int kriterijumPretrage, string tekstPretrage) { List listaKupaca = new List(); SqlConnection konekcija = new SqlConnection(); try { konekcija.ConnectionString = CONNECTION_STRING; konekcija.Open(); SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija; string selectUpit = "select * from Kupac where 1=1 "; if (!string.IsNullOrEmpty(tekstPretrage)) { switch (kriterijumPretrage) { case 0: selectUpit += " and IdentifikacioniBroj LIKE '%' + @kriterijum + '%'"; break; case 1: selectUpit += " and Ime LIKE '%' + @kriterijum + '%'"; break; case 2: selectUpit += " and Prezime LIKE '%' + @kriterijum + '%'"; break; } komanda.Parameters.AddWithValue("@kriterijum", tekstPretrage); } komanda.CommandText = selectUpit; SqlDataReader reader = komanda.ExecuteReader(); while (reader.Read()) { listaKupaca.Add(new Kupac(reader)); } reader.Close(); return listaKupaca; } catch (Exception ex) { throw ex; } finally { konekcija.Close(); } } public static void InsertKupac(Kupac kupac) { SqlConnection konekcija = new SqlConnection(); try { konekcija.ConnectionString = CONNECTION_STRING; konekcija.Open(); string insertUpit = "INSERT INTO Kupac(Ime, Prezime, IdentifikacioniBroj, ClanOd, KorisnickoIme) " + "VALUES(@Ime, @Prezime, @IdentifikacioniBroj, GETDATE(), @KorisnickoIme)"; SqlCommand komanda = new SqlCommand(insertUpit, konekcija); komanda.Parameters.AddWithValue("@Ime", kupac.Ime); komanda.Parameters.AddWithValue("@Prezime", kupac.Prezime); komanda.Parameters.AddWithValue("@IdentifikacioniBroj", kupac.IdentifikacioniBroj); komanda.Parameters.AddWithValue("@KorisnickoIme", kupac.KorisnickoIme); komanda.ExecuteNonQuery(); } catch { } finally { konekcija.Close(); } } public static void UpdateKupac(Kupac kupac) { SqlConnection konekcija = new SqlConnection(); try { konekcija.ConnectionString = CONNECTION_STRING; konekcija.Open(); string updateUpit = @" UPDATE [Kupac] SET [Ime] = @Ime, [Prezime] = @Prezime, [IdentifikacioniBroj] = @IdentifikacioniBroj WHERE [KupacId] = @KupacId"; SqlCommand komanda = new SqlCommand(updateUpit, konekcija); komanda.Parameters.Add("@Ime", kupac.Ime); komanda.Parameters.Add("@Prezime", kupac.Prezime); komanda.Parameters.Add("@IdentifikacioniBroj", kupac.IdentifikacioniBroj); komanda.Parameters.Add("@KupacId", kupac.KupacId); komanda.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { konekcija.Close(); } } public static void DeleteKupac(Kupac kupac) { SqlConnection konekcija = new SqlConnection(); try { konekcija.ConnectionString = CONNECTION_STRING; konekcija.Open(); string deleteUpit = @" DELETE FROM Kupac WHERE KupacId = @KupacId"; SqlCommand komanda = new SqlCommand(deleteUpit, konekcija); komanda.Parameters.Add("@KupacId", kupac.KupacId); komanda.ExecuteNonQuery(); } catch { } finally { konekcija.Close(); } } public static DataTable VratiSveKupce() { DataTable dtSviKupci = new DataTable(); SqlConnection konekcija = new SqlConnection(); try { konekcija.ConnectionString = CONNECTION_STRING; konekcija.Open(); string selectUpit = @"SELECT KupacId, Ime, Prezime, IdentifikacioniBroj, ClanOd, Ime + ' ' + Prezime + ' - ' + IdentifikacioniBroj AS PunoIme FROM Kupac Order by Ime, Prezime, IdentifikacioniBroj"; SqlDataAdapter da = new SqlDataAdapter(selectUpit, konekcija); da.Fill(dtSviKupci); } catch { dtSviKupci = null; } finally { konekcija.Close(); } return dtSviKupci; } public static int VratiKupacIdZaKorisnickoIme(string korisnickoIme) { SqlConnection konekcija = new SqlConnection(); try { konekcija.ConnectionString = CONNECTION_STRING; konekcija.Open(); SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija; string selectUpit = "select * from Kupac where KorisnickoIme=@KorisnickoIme"; komanda.Parameters.AddWithValue("@KorisnickoIme", korisnickoIme); komanda.CommandText = selectUpit; return Convert.ToInt32(komanda.ExecuteScalar()); } catch (Exception ex) { throw ex; } finally { konekcija.Close(); } } 

}

public Kupac(SqlDataReader reader){try {KupacId = Convert.ToInt32(reader [“KupacId”]); Ime = reader [“Ime”]。ToString(); Prezime = reader [“Prezime”]。ToString(); IdentifikacioniBroj = reader [“IdentifikacioniBroj”]。ToString(); ClanOd =(DateTime)reader [“ClanOd”]; KorisnickoIme =读者[“KorisnickoIme”]。ToString(); } catch(exception错误){throw err; }}

 //public Kupac(SqlDataReader reader) //{ // KupacId = Convert.ToInt32(reader["KupacId"]); // Ime = reader["Ime"].ToString(); // Prezime = reader["Prezime"].ToString(); // IdentifikacioniBroj = reader["IdentifikacioniBroj"].ToString(); // ClanOd = (DateTime) reader["ClanOd"]; // KorisnickoIme = reader["KorisnickoIme"].ToString(); //} public int KupacId { get; set; } public string Ime { get; set; } public string Prezime { get; set; } public string IdentifikacioniBroj { get; set; } public DateTime ClanOd { get; set; } public string KorisnickoIme { get; set; } 

}