[英]Null value is not imported with C# in Oracle 11g
我目前正在創建一個應用程序,以將數據從DataGridView導入Oracle 11g。 我的問題是,例如,如果列REPORTING_OUTBOUND_DATE為空,則會收到錯誤消息System.FormatException:“該字符串未被識別為有效的DateTime”。 我該如何解決這些錯誤,並且根本不重要? 有什么辦法可以更好地編程一切嗎? 謝謝
private void Btn_SAVE_IN_DATABASE_VEUPEN_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView2.Rows.Count - 1; i++) //Schleife für INSERT Befehl
{
OracleConnection con = new OracleConnection("Data Source=(***********************");
con.Open();
string sql = "INSERT INTO AFTERSALES.INPUT_BOARDLEVEL_REPAIR_VEUPEN (BLR_REPORT_DATE, MONTH_OF_REPAIR_END, PCB_COUNTER, MANUFACTURER, REPORTING_OUTBOUND_DATE, EMPTY, QTY)"
+ "VALUES (:BLR_REPORT_DATE, :MONTH_OF_REPAIR_END, :PCB_COUNTER, :MANUFACTURER, :REPORTING_OUTBOUND_DATE, :EMPTY, :QTY)";
OracleCommand cmd = new OracleCommand(sql, con);
//cmd.CommandText = sql;
cmd.Parameters.Add(":BLR_REPORT_DATE", Convert.ToDateTime(dataGridView2.Rows[i].Cells[0].Value).ToString("dd.MM.yyyy"));
cmd.Parameters.Add(":MONTH_OF_REPAIR_END", dataGridView2.Rows[i].Cells[1].Value);
cmd.Parameters.Add(":PCB_COUNTER", dataGridView2.Rows[i].Cells[2].Value);
cmd.Parameters.Add(":MANUFACTURER", dataGridView2.Rows[i].Cells[3].Value);
cmd.Parameters.Add(":REPORTING_OUTBOUND_DATE", Convert.ToDateTime(dataGridView2.Rows[i].Cells[4].Value).ToString("dd.MM.yyyy"));
cmd.Parameters.Add(":EMPTY", dataGridView2.Rows[i].Cells[5].Value);
cmd.Parameters.Add(":QTY", dataGridView2.Rows[i].Cells[6].Value);
cmd.ExecuteNonQuery();
con.Close();
}
}
嘗試在轉換前檢查null。 像這樣:
dataGridView2.Rows[i].Cells[0].Value == null? null : Convert.ToDateTime(dataGridView2.Rows[i].Cells[0].Value).ToString("dd.MM.yyyy")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.