C# 从 SqlConnection 转换项目以公开可用项目
C# Casting item from SqlConnection to expose available items
我有一个 SQL 查询,由于存储过程包含一个主元 table,我使用纯 ADO.NET(不是 Entity Framework)直接在代码中调用它根据参数输入,它可能 return 可变数量的列。
我已经到了可以从查询中获取行数据列表的阶段,并且在调试时,如果我深入了解基本属性,我可以看到该对象包含 2 个属性我需要 (_fieldNameLookup
和 _values
).
我正在尝试访问这些值,但我不确定我打算如何转换这些项目以公开我需要的属性。
C#查询如下:
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Services"].ToString()))
{
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = "[SPROCQUERY]";
cmd.CommandType = CommandType.StoredProcedure;
var queryData = cmd.ExecuteReader();
var crei = new List<Items>();
while (queryData.Read())
{
for (int i = 0; i < queryData.FieldCount; i++)
{
var x = queryData[i]; <-- I am trying to expose values in this object
}
}
queryData.Close();
return null;
}
在 var x
上使用智能感知显示 Equals
、GetType
、ToString
.
等通用属性
谢谢
queryData
是您的 DbDataReader。引用默认 属性 上的索引只是 returns 列号的对象。
要找出列名,请使用 queryData
的 GetName()
方法,要获取类型,请使用 GetFieldType()
:
Type t = queryData.GetFieldType(i);
要引用对象的属性--您需要将其转换为适当的类型。
我有一个 SQL 查询,由于存储过程包含一个主元 table,我使用纯 ADO.NET(不是 Entity Framework)直接在代码中调用它根据参数输入,它可能 return 可变数量的列。
我已经到了可以从查询中获取行数据列表的阶段,并且在调试时,如果我深入了解基本属性,我可以看到该对象包含 2 个属性我需要 (_fieldNameLookup
和 _values
).
我正在尝试访问这些值,但我不确定我打算如何转换这些项目以公开我需要的属性。
C#查询如下:
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Services"].ToString()))
{
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = "[SPROCQUERY]";
cmd.CommandType = CommandType.StoredProcedure;
var queryData = cmd.ExecuteReader();
var crei = new List<Items>();
while (queryData.Read())
{
for (int i = 0; i < queryData.FieldCount; i++)
{
var x = queryData[i]; <-- I am trying to expose values in this object
}
}
queryData.Close();
return null;
}
在 var x
上使用智能感知显示 Equals
、GetType
、ToString
.
谢谢
queryData
是您的 DbDataReader。引用默认 属性 上的索引只是 returns 列号的对象。
要找出列名,请使用 queryData
的 GetName()
方法,要获取类型,请使用 GetFieldType()
:
Type t = queryData.GetFieldType(i);
要引用对象的属性--您需要将其转换为适当的类型。