繁体   English   中英

无法将参数值从字符串转换为手动解析日期值的DateTime

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM