无法将参数日期的值从系统字符串转换为系统日期时间
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);
https://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; }
}
上述就是C#学习教程:无法将参数日期的值从系统字符串转换为系统日期时间分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1021542.html