【发布时间】:2018-02-28 22:29:16
【问题描述】:
我正在处理一个 txt 文件,我必须将该数据插入 mysql 数据库。
所以我在Datatable 中获取该信息,然后我可以在我的gridview 中获取该数据,并且我必须将该数据插入数据库中。我可以这样做,但日期列有问题。
例如,当我尝试插入时,如果我在 datagridview 中有这个日期:12/01/2018 没问题,但如果我有 17/01/2018 没有插入,我已经手动更改并且我已经探测过了.
这是读取的txt:
string LogAutoriz_fileName = Server.MapPath("~/Files/") + User.Identity.Name.ToString() + "_" + Path.GetFileName(fup_LogAutoriz_File.PostedFile.FileName);
fup_LogAutoriz_File.SaveAs(LogAutoriz_fileName);
DataTable dt = new DataTable();
List<string[]> list = new List<string[]>();
int maxItem = 0;
using (System.IO.TextReader tr = File.OpenText(LogAutoriz_fileName))
{
string line;
while ((line = tr.ReadLine()) != null)
{
string[] items = line.Trim().Split(' ');
if (maxItem <= items.Count())
{
maxItem = items.Count();
}
list.Add(items);
}
//Crear las columnas del DataTable de Datos
dt.Columns.Add("Comprobante", typeof(string));
dt.Columns.Add("Serie_Comprobante", typeof(string));
dt.Columns.Add("Ruc_Emisor", typeof(string));
dt.Columns.Add("RazonSoc_Emisor", typeof(string));
dt.Columns.Add("Fecha_Emision", typeof(string));
dt.Columns.Add("Fecha_Autoriz", typeof(string));
dt.Columns.Add("Tipo_Emision", typeof(string));
dt.Columns.Add("Ident_Receptor", typeof(string));
dt.Columns.Add("Basura", typeof(string));
dt.Columns.Add("Clave_Acceso", typeof(string));
dt.Columns.Add("Numero_Autor", typeof(string));
dt.Columns.Add("Importe_Total", typeof(string));
foreach (var items in list)
{
dt.Rows.Add(items);
}
//cargar al grid
this.gvwAutorizaciones.DataSource = dt;
this.gvwAutorizaciones.DataBind();
这是为了在数据库中插入每个 gridview 记录:
try
{
using (MySqlConnection sqlCon = new MySqlConnection(conn))
{
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.CommandText = "Insert into autorizaciones " +
"(comprobante, Serie_Comprobante, Ruc_Emisor, RazonSoc_Emisor, " +
"Fecha_Emision, Fecha_Autorizacion, " +
"Tipo_Emision, Ident_Receptor, Clave_Acceso, Numero_Autorizacion) " +
"values(" +
"'" + comprob + "', " +
"'" + serComprob + "', " +
"'" + rucEmisor + "', " +
"'" + razSocEmi + "', " +
"'" + FecEmisor + "', " +
"'" + FecAutoriz + "', " +
"'" + tipoEmision + "', " +
"'" + identRecep + "', " +
"'" + claveAcceso + "', " +
"'" + numAutoriz + "')";
cmd.Connection = sqlCon;
sqlCon.Open();
cmd.ExecuteNonQuery();
sqlCon.Close();
}
}
}
catch (MySqlException ex)
{
}
我在 foreach 中调用它,我可以插入记录,但是对于日期,我有这个问题。
有没有办法格式化列数据表,例如“yyyy-mm-dd”?
如果有人可以帮助我,
非常感谢 最好的问候
【问题讨论】:
-
警告:此代码充满了SQL injection bugs,因为 SQL 语句内联原始内容而没有适当的转义。尽可能考虑使用带有占位符值的准备好的语句。
-
您的日期时间字段在表中的哪一列?是什么格式的?
-
DateTime 变量没有格式。只有当您在某处使用它或调用 ToString 时,它们才会以特定格式表示。如果要将字符串转换为 DateTime,则必须确保它们的格式正确,为此,仅 SO 就有大量的例子。
-
谢谢VDWWD,对了,我必须处理格式