c# - 在 Oracle 11g 中不使用 C# 导入 Null 值
问题描述
我目前正在创建一个将数据从 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")
推荐阅读
- amazon-web-services - Aws Lambda function triggers on a delay time for 2 out of 3 cron jobs
- spring-boot - Why the bean bean gcpProjectIdProvider is available in two classpaths and causing error?
- python - Statsmodels OLS terms undefined
- java - 基于动态值用Java编写文件
- c++ - 无法导入 poppler.h
- language-agnostic - 科技雇主更喜欢广泛而深入的理论知识?或者他们只是想要拥有 5 年最新流行语经验的人?
- node.js - 如何检查数据的集合是否存在于mongodb中
- ios - 如何在 IOS 设备上的裸工作流中测试我的 expo 应用程序?
- javascript - particle.js 重启或运行多个实例?
- matlab - 线性代数:删除行/行并使用减少的雅可比进行项目等价于首先使用完整的雅可比进行项目并在行/行之后删除?