![](/img/trans.png)
[英]When parsing a string in to DateTime, parse the string to take data before putting each variable into the DateTime Object
[英]Parse the string to take the date before putting each variable into datetime object
當我嘗試執行附加代碼時收到此警告。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace prueb2 {
public partial class Acusado: Form {
public Acusado() {
InitializeComponent();
}
private void Acusado_Load(object sender, EventArgs e) {
listView1.Items.Clear();
List < ACUSADOcLAS > listaAcusado;
try {
listaAcusado = BD.GetAcusado();
if (listaAcusado.Count > 0) {
ACUSADOcLAS acusado;
for (int i = 0; i < listaAcusado.Count; i++) {
acusado = listaAcusado[i];
listView1.Items[i].SubItems.Add(acusado.NumeroSeguroSocial.ToString());
listView1.Items[i].SubItems.Add(acusado.NombreAcusado);
listView1.Items[i].SubItems.Add(acusado.ApellidoPaternoAcusado);
listView1.Items[i].SubItems.Add(acusado.ApellidoMaternoAcusado);
listView1.Items[i].SubItems.Add(acusado.FechaNacimientoAcusado.ToString());
listView1.Items[i].SubItems.Add(acusado.GeneroAcusado);
listView1.Items[i].SubItems.Add(acusado.DireccionAcusado);
listView1.Items[i].SubItems.Add(acusado.NivelMaximoEstudiosAcusado);
listView1.Items[i].SubItems.Add(acusado.EtnicidadAcusado);
listView1.Items[i].SubItems.Add(acusado.ReligionAcusado);
}
} else {
MessageBox.Show("No hay acusados", "Alerta");
}
} catch (Exception ex) {
MessageBox.Show(ex.Message, ex.GetType().ToString());
}
}
private void button1_Click(object sender, EventArgs e) {
BD.AddAcusado(int.Parse(txtNumSeg.Text), txtNombreA.Text, txtApPat.Text, txtApMat.Text, DateTime.Parse(dateTimeFecha.Text), comboGenero.Text, txtDireccion.Text, comboEstudios.Text, txtEtnicidad.Text, txtReligion.Text);
txtNumSeg.Text = "";
txtNombreA.Text = "";
txtApPat.Text = "";
txtApMat.Text = "";
dateTimeFecha.Text = "";
comboGenero.Text = "";
txtDireccion.Text = "";
comboEstudios.Text = "";
txtEtnicidad.Text = "";
txtReligion.Text = "";
this.Acusado_Load(this, null);
}
}
}
你能幫我嗎?
由於日期字符串無效,您可能會遇到異常。 您需要先驗證它。
嘗試這個:
DateTime tempDateTimeFecha;
bool isValid = DateTime.TryParse(dateTimeFecha.Text, out tempDateTimeFecha);
現在,如果isValid == true
您可以將tempDateTimeFecha
作為參數傳遞給BD.AddAcusado()
方法。
我在嘗試解析 datagridview 的日期列時遇到了同樣的問題。 以下過程幫助我解決了這個問題:我檢查了我的循環體並將循環終止的最大數量減少了 1。
int days = 0;
Datetime d;
for (int i = 1; i < pastedCells -1; i++){
d = Convert.ToDateTime(dgv_Copy.Rows[i].Cells[1].Value);
days = DateTime.DaysInMonth(d.Year, d.Month);
Console.WriteLine(days + "\t" + d);
}
//result:
//31 2002-05-31 0:00
//30 2002-11-30 0:00
//31 2003-05-31 0:00
//30 2003-06-30 0:00
//31 2003-10-31 0:00
//30 2003-11-30 0:00
//29 2004-02-29 0:00
//31 2004-10-31 0:00
請注意:解析日期取決於格式(查看此https://docs.microsoft.com/en-us/dotnet/standard/base-types/parsing-datetime了解更多信息。更重要的是,如果您的循環體試圖傳遞一個null或empty ,那么它肯定會彈出錯誤。
另外,請記住捕獲異常,但不要在檢查編碼錯誤后捕獲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.