当前位置: 首页 > 面试题库 >

在Datareader中处理NULL

钱朝明
2023-03-14
问题内容

这是我用于通过DataReader从sql读取数据的代码。当表中有NULL时,它将给出错误。怎么处理呢?

我试过了

c.ActualWeight= dr[0] as float? ?? default(float);

问题是它可以成功处理NULL,但是即使sql数据库在该字段中的值为1,结果也始终为0。

{ 
    List<Inventory_Connector> LC = new List<Inventory_Connector>();
    string ConString = "data source=DELL\\SQLSERVER1;Initial Catalog=Camo;Integrated Security=True";
    SqlConnection con = new SqlConnection(ConString);
    SqlCommand cmd = new SqlCommand("Select Top 17 * from Inventory_Connector", con);
    con.Open();
    SqlDataReader dr = cmd.ExecuteReader();

    while (dr.Read())
    {
        c.ActualWeight = float.Parse(dr[0].ToString().Trim());
    }

    LC.Add(c);
}

dr.Close();
con.Close();
return LC;

问题答案:

您可以用来SqlDataReader.IsDBNull从数据读取器中检查空值。C#nullDBNull有所不同。

 c.ActualWeight = 
     dr.IsDBNull(0) 
     ? default(float) 
     : float.Parse(dr[0].ToString().Trim());


 类似资料:
  • 我主要是为技术精明的人编写一个小工具,例如程序员、工程师等,因为这些工具通常是快速的,随着时间的推移,我知道会有未处理的异常,用户不会介意。我希望用户能够向我发送回溯,这样我就可以检查发生了什么,并可能改进应用程序。 我通常做wxPython编程,但我最近做了一些Java。我已经将

  • 问题内容: 以下处理方式有什么区别?最好的方法是什么? 要么 编辑:我也想知道这两种情况在哪些情况下使用。 问题答案: 以下处理的方式之间有什么区别?最好的方法是什么? 你可能会问这个问题,因为你已经调用了方法。 首先,你应该了解它的含义:方法签名的一部分以及调用你正在调用的方法的可能结果。因此,首先要包含一个事实,即是方法调用的完全有效结果。 现在,如果你正在调用的方法抛出此类异常,那么你的方法

  • 需要读取spring批处理中的文件,对其进行处理并将其作为一个提要保存。一个提要包含50%的信息。当我必须持久化提要的最终结果时,我需要使用公共字段将它们组合起来,并像一个项目一样持久化。请参见下面的示例。 我需要保留的最终信息如下: 请建议我如何在我的Spring批工作中实现这一点。 谢谢

  • 我在静态类中存储游戏的纹理。它们从管理器加载到此类的静态数组中。 每个屏幕都有一个dispose方法,但我应该在纹理上的何处调用dispose。libGDX是否只在应用程序退出时处理,因此我应该在每个屏幕中处理纹理?

  • 本文向大家介绍DataReader与Dataset有什么区别?相关面试题,主要包含被问及DataReader与Dataset有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答: DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为Dat

  • 问题内容: 我想要一个文本区域,可以处理按 Tab 键的情况。 在默认情况下,如果您按 Tab 键,则焦点将离开文本区域。但是,当用户想要在文本区域中输入 Tab 键时会怎样呢? 我可以捕捉到此事件并将焦点返回到文本区域并将标签添加到 当前 光标位置吗? 问题答案: