gpt4 book ai didi

c# - IDataReader.GetOrdinal 或 IDataReader[ColumnName]

转载 作者:行者123 更新时间:2023-11-30 14:37:23 26 4
gpt4 key购买 nike

我有两种情况从IDataReader对象中提取信息

Case - 1 - 长度,计算序数然后解析字符串

public static string GetString(IDataReader rdr, string columnName)
{
int ordinal = rdr.GetOrdinal(columnName);
if (rdr.IsDBNull(ordinal))
{
return string.Empty;
}
return (string)rdr[ordinal];
}

案例2,short way,不计算序数就获取数据

public static string GetString(IDataReader rdr, string columnName)
{
return (string)rdr[columnName];
}

应该首选哪种技术,为什么以及是否有特定上下文?

最佳答案

SqlDataReader 的 this[string name] 看起来像:

public override object this[string name]
{
get
{
return this.GetValue(this.GetOrdinal(name));
}
}

所以它是内部计算序数的,使用什么方法没有区别。

更新

您可以将您的代码重写为:

public static string GetString(IDataReader rdr, string columnName)
{
return (rdr[columnName] as String)??String.Empty;
}

关于c# - IDataReader.GetOrdinal 或 IDataReader[ColumnName],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9317251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com