0

Excelスプレッドシートから読み取るときにOleDbDataReaderにnull値を受け入れる方法はありますか? 次の列があります。

ID | コースコード | コース時間 | 状態 | 発効日 | 有効期限

CourseHours 列が空白になることがあります。これは、reader[2] が null ではなく、reader[2] = State であるため、私のコードを台無しにします。

これは私が現在使用している方法ですが、少し面倒です。

OleDbDataReader reader;
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    OleDbCommand command = new OleDbCommand(queryString, connection);
    connection.Open();
    reader = command.ExecuteReader();


    while (reader.Read())
    {
        string Id = "";
        string courseCode = "";
        string hours = "";
        string state = "";
        string effectiveDate = "";
        string expirationDate = "";
        string method = "";


        //Add manadatory values
        Id = reader[0].ToString();
        courseCode = reader[1].ToString();

        int value = 0;
        if (int.TryParse(reader[2].ToString(), out value))
        {
            hours = value.ToString();
            state = reader[3].ToString();
            effectiveDate = reader[4].ToString();

            //Check for null in expiration date
            if (!DBNull.Value.Equals(reader[5]))
            {
                expirationDate = reader[5].ToString();
            }
        }
        else
        {
            state = reader[2].ToString();
            effectiveDate = reader[3].ToString();

            //Check for null in expiration date
            if (!DBNull.Value.Equals(reader[5]))
            {
                expirationDate = reader[5].ToString();
            }
        }
4

0 に答える 0