ASP.NET 5 - DataSet,DataTable和朋友

时间:2016-03-24 16:22:40

标签: sql asp.net-mvc-5

我使用新的.NET Core库在ASP.NET 5中创建了一个新的Web服务,到目前为止,我只遇到了使用DataSet和DataTable的问题。

根据this网站,他们此时并未包含在内,这很好,但我现在还不知道我有什么替代方案,所以我只是在寻找一些指导。

我有以下代码:         public string Get(string p_sUserId,string p_sUserPassword,int p_iCustId)         {             选择qrySelect = new选择();

        using (SqlConnection conn = new SqlConnection(Startup.ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand(qrySelect.getData(), conn))
            {
                cmd.Parameters.AddWithValue("@Id", sTestId);

                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {
                    using (DataSet ds = new DataSet())
                    {
                        // foo
                        // bar
                    }
                }
            }
        }

        return "value";
    }

我应该如何处理从查询返回的数据?我需要使用从查询中获取的上述数据构建并返回一个字符串。任何帮助和指导将不胜感激。

2 个答案:

答案 0 :(得分:0)

我相信SqlDataReader应该有用。

       string sql = "SELECT * FROM Table";
       using (SqlConnection con = new SqlConnection(Startup.ConnectionString)) {
            con.Open();
            using (SqlCommand command = new SqlCommand(sql, con)) {

                using (IDataReader dr = command.ExecuteReader()) {
                    while (dr.Read()) {
                        //process data
                    }
                }
            }
        }

答案 1 :(得分:0)

现在使用.NET Standard 2.0支持DataTable和SqlDBAdapter。升级到VS2017 Preview,添加System.Data.Common和System.Data.SqlClient nugets,下面的代码应该可以工作。更多细节在这里的博客文章 - > https://blogs.msdn.microsoft.com/devfish/2017/05/15/exploring-datatable-and-sqldbadapter-in-asp-net-core-2-0/。 GitHub repo here - > https://github.com/jhealy/aspdotnetcore/tree/master/SqlClientPlay20

public static DataTable ExecuteDataTableSqlDA(SqlConnection conn, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
    System.Data.DataTable dt = new DataTable();
    System.Data.SqlClient.SqlDataAdapter da = new SqlDataAdapter(cmdText, conn);
    da.Fill(dt);
    return dt;
}