【问题标题】:net core - convert reader to jsonnet core - 将阅读器转换为 json
【发布时间】:2016-10-07 18:24:40
【问题描述】:

我正在与.net core 1.0.1 合作。我想从 Sql Server 表中执行存储过程。我可以正确连接到数据库,现在我有以下代码:

var con = _context.Database.GetDbConnection();
var cmd = con.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "procedures.sp_Users";
cmd.Parameters.Add(new SqlParameter("@Command", SqlDbType.VarChar) { Value = "Login" } );
cmd.Parameters.Add(new SqlParameter("@user", SqlDbType.VarChar) { Value = "admin" } );
cmd.Parameters.Add(new SqlParameter("@pass", SqlDbType.VarChar) { Value = "admin" } );

var reader = cmd.ExecuteReader(); 

所以我想将此 reader 转换为 JSON 字符串,以便在控制器中返回它。

我怎样才能实现它?

我读到我不能使用DataTableDataSet,因为它们不是跨平台的。

【问题讨论】:

  • 您可以使用来自JSON.net serialize directly from oledbconnectionDataReaderConverter。该转换器直接从任何IDataReader 序列化。
  • dbc,我今天开始通过 .net core 使用 mssql ......虽然你似乎在分享一些有用的东西,但我不得不说......这对于一个全新的人来说还不够,那就是谁会问这个问题。 ...详细说明

标签: c# sql-server json asp.net-core


【解决方案1】:

通过以下方式解决:

var con = _context.Database.GetDbConnection();
var cmd = con.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "procedures.sp_Users";
cmd.Parameters.Add(new SqlParameter("@Command", SqlDbType.VarChar) { Value = "Login" } );
cmd.Parameters.Add(new SqlParameter("@user", SqlDbType.VarChar) { Value = "admin" } );
cmd.Parameters.Add(new SqlParameter("@pass", SqlDbType.VarChar) { Value = "admin" } );

var retObject = new List<dynamic>();
con.Open();
using (var dataReader = cmd.ExecuteReader())
{
    while (dataReader.Read())
    {
        var dataRow = new ExpandoObject() as IDictionary<string, object>;
        for (var iFiled = 0; iFiled < dataReader.FieldCount; iFiled++)
            dataRow.Add(
                dataReader.GetName(iFiled),
                dataReader.IsDBNull(iFiled) ? null : dataReader[iFiled] // use null instead of {}
            );

        retObject.Add((ExpandoObject)dataRow);
    }
}
return retObject;

如以下link所建议的那样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多