簡體   English   中英

如何將數據表中的數據存儲在數組中

[英]How to store the data from a datatable in an array

我正在使用Web服務從數據庫表(110行8列)中檢索數據,我想將所有這些數據存儲在一個數組中,以便可以在android應用程序上輕松查看和訪問該數據。

這是我的代碼:

[WebMethod(Description = "Webservice for generating category wise report in xml")]
public string getCategoryWiseReport_2(string district)
{
    string s = null;
            string ofc_code=null;
            string ofc_desg=null;
            string ofc_name=null;
            string dep_name=null;
            string total_comp=null;
            string pending=null;
            string desposed=null;
            string interim=null;
            string defaulter=null;
            string arr[];
    var con = new SqlConnection("data source=xxxx;initial catalog=xyz;integrated security=true");
    StringBuilder JSON = new StringBuilder();
    con.Open();
    var cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandText = "ReportSummery";
    cmd.CommandType = CommandType.StoredProcedure;
    DataTable dt = new DataTable();
    SqlDataAdapter ad = new SqlDataAdapter(cmd);
    cmd.Parameters.AddWithValue("@district", district);
    cmd.ExecuteNonQuery();
    ad.Fill(dt);

    for (int i = 0; i < dt.Rows.Count - 1; i++)
    {

            ofc_code = dt.Rows[i][0].ToString();
            ofc_desg = dt.Rows[i][1].ToString();
            ofc_name = dt.Rows[i][2].ToString();
            dep_name = dt.Rows[i][3].ToString();
            total_comp = dt.Rows[i][4].ToString();
            pending = dt.Rows[i][5].ToString();
            desposed = dt.Rows[i][6].ToString();
            interim = dt.Rows[i][7].ToString();
            defaulter = dt.Rows[i][8].ToString();

    }
    return ofc_code + "," + ofc_desg + "," + ofc_name + "," + total_comp + "," + pending + "," + desposed + "," + interim + "," + defaulter;
    con.Close();
}

我認為您有點很難。 首先,如果您不想在DataTable 使用該表: 不要使用DataTable 您在代碼中提到了JSON,因此我將假定這是慣用的JSON。 在這種情況下-使用POCO:

class CategoryWiseRow {
    public string ofc_code {get;set;}
    public string ofc_desg {get;set;}
    public string ofc_name {get;set;}
    public string dep_name {get;set;}
    public string total_comp {get;set;}
    public string pending {get;set;}
    public string desposed {get;set;}
    public string interim {get;set;}
    public string defaulter {get;set;}
}

然后從存儲過程中填充數據-像“ dapper”之類的東西在這里確實有幫助:

List<CategoryWiseRow> data;
using(var con = new SqlConnection(....))
{
    data = con.Query<CategoryWiseRow>("ReportSummery", new { district },
        commandType: CommandType.StoredProcedure).ToList();
}

並使用您喜歡的任何JSON工具-例如Json.NET:

string json = JsonConvert.SerializeObject(data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM