我通过 SqlDataAdapter 向我的 Sql 框发送一个标准的 Sql 选择语句,然后填充一个 DataSet 对象。
我可以访问结果数据集中的行,但是如何将数据集转换为可以返回到 MVC 视图的列表。即,我假设 List 对象是处理此问题的最佳方式。
这是我的控制器 C# 代码:
public class QAController : Controller
{
private readonly static string connString = ConfigurationManager.ConnectionStrings["RegrDBConnection"].ToString();
private readonly static SqlConnection sqlConn = new SqlConnection(connString);
private readonly static SqlCommand sqlComm = new SqlCommand();
public ActionResult Index()
{
DbRegressionExec();
return View();
}
public static void DbRegressionExec()
{
// SELECT TABLE CONTENTS FROM SQL !!
RegressDB_TableList regresDB = new RegressDB_TableList();
string sqlStr = "select * from [RegressionResults].[dbo].[Diff_MasterList] order by TableName";
// POPULATE DATASET OBJECT
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlStr, sqlConn);
da.SelectCommand.CommandType = CommandType.Text;
sqlConn.Open();
try
{
da.Fill(ds, "RegresDB");
}
catch (Exception e)
{
throw;
}
finally
{
sqlConn.Close();
}
// I can iterate thru rows here, but HOW DO CONVERT TO A LIST OBJECT ????
int numRows = ds.Tables["RegresDB"].Rows.Count;
for (int i = 0; i < numRows; i++)
{
string tblName = ds.Tables["RegresDB"].Rows[i].Field<string>("TableName");
}
//List<RegressDB_TableList> masterList = regresDB.RegresTableList.ToList(); //not working !!
//var masterList = regresDB.TableName.ToList(); //
}
}
我可能需要一个简单的类来实现这一点:
namespace RegressionMvc.Models
{
public class RegresDB_TableName
{
public string TableName { get; set; }
}
public class RegressDB_TableList
{
public List<RegresDB_TableName> RegresTableList { get; set; }
}
}
最后,我试图找出处理来自 Sql Server 的 DataSet 结果的最佳方法,以及如何将它们返回到 MVC 视图。
我可能会使用 jQuery 和 Json,这意味着只需将数据字段转换为 Json 并返回到 JQuery,但我确信有几种方法可以处理基于 Sql 的结果集。
提前感谢您的建议......
最好的,鲍勃