gpt4 book ai didi

sql - DataReader.GetString() 通过列名

转载 作者:行者123 更新时间:2023-12-02 12:18:32 31 4
gpt4 key购买 nike

Dictionary Fields = new Dictionary();for (int i = 0; i < reader.FieldCount; i++){     Fields.Add(reader.GetName(i), i);}this._MyField1 = reader.GetString(Fields["field1"]);this._Myfield2 = reader.GetInt16(Fields["field2"]);

这样做让我想哭,但除了这种方式之外,我似乎无法弄清楚如何通过列名使用特定于类型的检索方法。请告诉我有更好的方法。这是专门针对 DB2 的,但如果可能的话,我希望该解决方案也适用于 MS Sql

最佳答案

您正在寻找GetOrdinal方法:

this._MyField1 = reader.GetString(dr.GetOrdinal("field1"));
this._Myfield2 = reader.GetInt16(dr.GetOrdinal("field2"));

为了性能和可读性,我通常以匿名类型缓存序数:

// ...
using (IDataReader dr = cmd.ExecuteReader())
{
var ordinals = new {
Foo = dr.GetOrdinal("Foo"),
Bar = dr.GetOrdinal("Bar")
};

while (dr.Read())
{
DoSomething(dr.GetString(ordinals.Foo), dr.GetInt16(ordinals.Bar));
}
}
// ...

关于sql - DataReader.GetString() 通过列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3228972/

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