从DataRow内部的DateTime对象中提取数据

本文关键字:提取 数据 对象 DateTime DataRow 内部 | 更新日期: 2023-09-27 18:02:01

我有一个小应用程序,连接到存储培训课程完成的Oracle数据库。数据库中有员工姓名、员工编号、课程完成日期和课程名称。我的代码返回一行,如下所示:

            String strPerIdNo = textBox1.Text;
            String strQuery = "PER_ID_NO = " + "'" + strPerIdNo + "'";
            DataRow[] foundRows;
            foundRows = dataSet1.DataTable1.Select(strQuery);

一行包含5个元素的数组:

  • [0] -系统。li>[1] -字符串对象
  • [2] - Int object
  • [3] -字符串对象
  • [4] -字符串对象

我想从数组[0]中的DateTime对象实例化一个DateTime对象,但我不知道如何。我想显示一条消息,其中包含emp的名字和他们完成课程的日期。

谢谢!

从DataRow内部的DateTime对象中提取数据

首先,这里没有实例化任何东西,因为您想要的DateTime已经存在(否则,它不会在DataRow中!)。此外,DateTime是一个值类型,而不是引用类型;考虑实例化一个值类型是不正常的;你只需要初始化或复制它们。

您正在寻找的是获取DataRow中DateTime元素的值。步骤如下:

//step 0: make sure there's at least one DataRow in your results
if (foundRows.Length < 1) { /* handle it */ }
//step 1: get the first DataRow in your results, since you're sure there's one
DataRow row = foundRows[0];
//step 2: get the DateTime out of there
object possibleDate = row["TheNameOfTheDateColumn"];
//step 3: deal with what happens if it's null in the database
if (possibleDate == DBNull.Value) { /* handle it */ }
//step 4: possibleDate isn't a DateTime - let's turn it into one.
DateTime date = (DateTime)possibleDate;

如果它是一个DateTime对象,那么为什么不直接转换它呢?像

<>之前foreach(DataRow中的数据行){var dt = (DateTime)row[0];}