naw*_*fal 2 c# dbnull datareader sqldatareader mysqldatareader
db中的表的列可以存储空值(如DBNulls).有没有一种方法,我可以从这些信息IDataReader还是DbDataReader?
using (var reader = command.ExecuteReader())
{
//can I get the column info like if it supports null value if I pass the ordinal?
reader.CheckIfSupportsNull(someIndex) ???
while (reader.Read())
{
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以读取单元格值并检查它DBNull.Value,但我不是问我是否可以检查读取值是否为null,但是如果我可以检查列本身是否支持DBNulls而不管表中存在的实际值.
我想知道这是否可能MySqlDataReader和/或SqlDataReader..
IDataReader.GetSchemaTable允许这样做.它返回DataTable描述结果集的内容.查看文档以查看它返回的列(有很多列).但不确定这个电话有多贵.我认为它不会往返服务器.
它返回结果集的属性,而不是直接返回某些表的属性.如果直接从表中选择列,则属性应匹配.这不适用于计算表达式(SomeCol + 1),因为SQL Server无法通过表达式精确跟踪可空性.