如何用数据 reader C# 发现空访问字段
How to spot an empty access field with data reader C#
我正在尝试创建一种方法,该方法 returns 来自我的数据库的满足我的条件的字符串。
第一个条件有效。
但是,第二个条件是access中部分entry为空,至少有一个字段。
这是我的代码:
OleDbCommand datacommand = new OleDbCommand();
datacommand.Connection = dataConnection;
datacommand.CommandText = "SELECT numNumber, numLocation " +
"FROM tblNumbers " +
"ORDER BY numID ";
OleDbDataReader dataReader = datacommand.ExecuteReader();
while (dataReader.Read())
{
if (MatchServiceLetters(dataReader.GetString(0))) // && dataReader.GetInt32(1) == null?/)
}
return dataReader.GetString(0);
如果 int 字段为空,则无法与 null 进行比较。那我怎么知道它是否为空?
来自 MSDN:
No conversions are performed; therefore, the data retrieved must already be a 32-bit signed integer.
Call IsDBNull to look for null values before calling this method.
所以你会使用:
if(!dataReader.IsDBNull(1))
{
return dataReader.GetInt32(1);
}
else
{
return 0; // or better yet, make your method return Nullable<int>
}
我正在尝试创建一种方法,该方法 returns 来自我的数据库的满足我的条件的字符串。
第一个条件有效。 但是,第二个条件是access中部分entry为空,至少有一个字段。
这是我的代码:
OleDbCommand datacommand = new OleDbCommand();
datacommand.Connection = dataConnection;
datacommand.CommandText = "SELECT numNumber, numLocation " +
"FROM tblNumbers " +
"ORDER BY numID ";
OleDbDataReader dataReader = datacommand.ExecuteReader();
while (dataReader.Read())
{
if (MatchServiceLetters(dataReader.GetString(0))) // && dataReader.GetInt32(1) == null?/)
}
return dataReader.GetString(0);
如果 int 字段为空,则无法与 null 进行比较。那我怎么知道它是否为空?
来自 MSDN:
No conversions are performed; therefore, the data retrieved must already be a 32-bit signed integer. Call IsDBNull to look for null values before calling this method.
所以你会使用:
if(!dataReader.IsDBNull(1))
{
return dataReader.GetInt32(1);
}
else
{
return 0; // or better yet, make your method return Nullable<int>
}