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();
}
}