【问题标题】:Add "empty" double value to database将“空”双值添加到数据库
【发布时间】:2017-01-19 19:53:55
【问题描述】:

我想将 xml 文件中的数据插入 sql 数据库。在我的 xml 文件中有很多不同的行。但是许多行包含空的双精度值。当我尝试将其添加到我的数据库时,我得到一个错误。

这是我的数据库插入的捷径:

   Table<Step> step = Accessor.GetStepTable();
                Step stp = new Step();

                stp.Angle1Actual = stepData.Columns.Contains("Angle1Actual") ? double.Parse(stepData.Rows[index][Array.IndexOf(argsStep, "Angle1Actual")].ToString()) : DBNull.Value;

                step.InsertOnSubmit(stp);
                step.Context.SubmitChanges();

问题是 DBNull 是不同的类型

【问题讨论】:

  • 您收到的错误信息是什么?您确定该列允许空值吗?
  • Angle1Actual 可以为空吗?
  • 错误是什么?
  • DBNull 不是“空”。 It is a type, a class in the framework.
  • 我在这里找到了我的问题的答案link

标签: c# sql-server linq-to-sql


【解决方案1】:

尝试使用double.TryParse 而不是double.Parse。如果操作成功,则返回布尔值。
参考: https://msdn.microsoft.com/en-us/library/system.double.tryparse(v=vs.110).aspx

【讨论】:

    【解决方案2】:

    DBNull 不是“空”。它是一种类型,是框架中的一个类。

    Here is an SO question: What is the best way to deal with DBNull's

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多