1

我有一个数据集“ds”,我从一个名为 tran_dtls 的表中填充它,现在我想为此数据集(或数据集“dt”中的表)编写一个方法,它可以有效地为我检索一个标量与此查询具有相同输出的值:

 select sum(amt) from TRAN_DTLS 
 where GL_CODE='" + row["gl_code"].ToString() + "' 
 and SUB_CODE='" + row["sub_code"].ToString() + "' 
 and DBCR='C'"

这里 amt,GL_code,SUb_code,DBCR 是 tran_dtls 表中的列,所以我想做的是选择具有各种条件的金额的总和,我以前从未做过这样的事情,所以我不知道这是否可能或不

4

1 回答 1

1

我认为您不能针对 DataSet 编写 SQL。但是你可以使用 LINQ:

var ds = new DataSet();
var tranDtls = new DataTable("tran_dtls");
tranDtls.Columns.Add("gl_code", typeof(string));
tranDtls.Columns.Add("amt", typeof(int));
var row = tranDtls.NewRow();
row["gl_code"] = "a";
row["amt"] = 1;
tranDtls.Rows.Add(row);
ds.Tables.Add(tranDtls);

var result = ds.Tables["tran_dtls"].AsEnumerable()
    .Where(r => (string)r["gl_code"] == "a")
    .Select(r => (int)r["amt"])
    .Sum();
于 2012-09-18T06:17:54.240 回答