通过循环遍历DataTable行来创建Json字符串

时间:2015-02-20 19:34:12

标签: c# sql json loops foreach

我需要从SQL查询创建一个Json字符串。我有一些使用静态数据的基本代码。现在我需要弄清楚如何遍历DataTable行并创建我的字符串列表。

string sql = "SELECT ID, FirstName, LastName";

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["mydb"].ToString());
SqlDataAdapter adapter = new SqlDataAdapter(sql, con);

DataTable dt = new DataTable();
adapter.Fill(dt);


return Json(new
{
    sEcho = param.sEcho,
    iTotalRecords = dt.Rows.Count,
    iTotalDisplayRecords = dt.Rows.Count,
    aaData = new List<string[]>() {
        new string[] {"4806", "Kenneth", "Sheffield"},
        new string[] {"3063", "Michael", "Harrison"},
        new string[] {"4000", "Jose", "Penalosa"}
    }
},

2 个答案:

答案 0 :(得分:1)

以下文章Producing JSON Documents from SQL Server queries via TSQL涵盖了SQL Server中的此过程。

假设您有一个填充的DataTable对象,您可以按如下方式遍历表格的行(即DataRow个对象):

var list = new List<string[]>();

foreach(DataRow row in dt.Rows)
{
    // This code sample could be collapsed further, but is not for this example.
    // Additionally, this sample does not include any validation or error-checking.
    string id = row["ID"].ToString();
    string firstName = row["FirstName"].ToString();
    string lastName = row["LastName"].ToString();
    // Validation & error-checking could go here before executing the Add() method.
    list.Add(new string[] {id, firstName, lastName});
}

答案 1 :(得分:0)

你可以像这样拉出数据:

foreach(DataRow row in dt.Rows)
{
    var id = row["ID"].ToString();
    var fname = row["FirstName"].ToString();
    var lname = row["LastName"].ToString();
}