[英]Failed to convert parameter value from a String to a DateTime Manually Parse Date Value
我发现我没有解析日期值。 但是我不确定该怎么做。
我知道我应该手动解析日期值,但是老实说我不知道该怎么做。
private void BtnDodajDavaoca_Click(object sender, EventArgs e)
{
String query = "INSERT INTO Davaoci (Ime,Prezime,Pol,DatumRodjenja,KrvnaGrupa,Tezina,Adresa,BrojTel,BrojLK) VALUES (@Ime, @Prezime, @Pol, @DatumRodjenja, @KrvnaGrupa, @Tezina, @Adresa, @BrojTel, @BrojLK)";
using (SqlConnection cs = new SqlConnection(@"Data Source=DESKTOP-112OILD\SQLEXPRESS;Initial Catalog=DDK;Integrated Security=True"))
using (SqlCommand InsertDavaoc = new SqlCommand(query, cs))
{
InsertDavaoc.Parameters.Add("@Ime", SqlDbType.NVarChar).Value = TxtIme.Text;
InsertDavaoc.Parameters.Add("@Prezime", SqlDbType.NVarChar).Value = TxtPrezime.Text;
InsertDavaoc.Parameters.Add("@Pol", SqlDbType.NChar).Value = TxtPol.Text;
//IT'S THIS LINE InsertDavaoc.Parameters.Add("@DatumRodjenja", SqlDbType.Date).Value = DtpDatumRodjenja.Text;
InsertDavaoc.Parameters.Add("@KrvnaGrupa", SqlDbType.VarChar).Value = TxtKrvnaGrupa.Text;
InsertDavaoc.Parameters.Add("@Tezina", SqlDbType.Float).Value = TxtTezina.Text;
InsertDavaoc.Parameters.Add("@Adresa", SqlDbType.NVarChar).Value = TxtAdresa.Text;
InsertDavaoc.Parameters.Add("@BrojTel", SqlDbType.NVarChar).Value = TxtBrojTel.Text;
InsertDavaoc.Parameters.Add("@BrojLK", SqlDbType.NVarChar).Value = TxtBrojLK.Text;
cs.Open();
InsertDavaoc.ExecuteNonQuery();
cs.Close();
OsvjeziDgDavaoci();
ClearTxtBx();
}
}
将字符串转换为日期的安全方法是使用ParseExact
方法,该方法允许您以确定性的方式指定格式:
// Use custom formats with M and MM.
var dateString = "5/01/2009 09:00";
try {
dateValue = DateTime.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
因此,必须使用DatePicker而不是TextBox,但是可以使用Parse Method将字符串解析为DateTime:
DateTime.Parse(TxtDatumRodjenja.Text);
您还可以使用以下代码将字符串日期转换为与点网兼容的日期对象,例如
InsertDavaoc.Parameters.Add("@DatumRodjenja", SqlDbType.Date).Value = Convert.ToDateTime(DtpDatumRodjenja.Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.