qwe
巴解组织
我想尝试一下:每次执行查询时,我想自动创建一个对象列表,对象的每个属性必须与表的列名相同。
像这样:
my_Sql_table
:
您可能希望根据您的输出格式更改此值,但这是如何获得结果的一个想法。我使用字典与ExpandoObject来覆盖对变量分配的限制。还可以尝试实现一个数据表,而不是直接从SqlDataReader读取,因为这往往会导致问题。
using System.Dynamic;
private IEnumerable<ExpandoObject> GetQueryToList()
{
SqlConnection sqlConn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlConn;
cmd.CommandText = "select * from my_Sql_table";
cmd.CommandType = CommandType.Text;
sqlConn.ConnectionString = _configuration["dbConnectionString"];
using (sqlConn)
{
var list = new List<ExpandoObject>();
sqlConn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
var expandoObject = new ExpandoObject();
for (var i = 0; i<reader.FieldCount; i++)
{
((IDictionary<string, object>) expandoObject).Add(
reader.GetName(i), reader[i]);
}
list.Add(expandoObject);
}
}