无法尝试在数据集/数据表上实现查询

时间:2012-09-18 05:28:14

标签: c# asp.net sql-server

我有一个数据集说'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'"

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

1 个答案:

答案 0 :(得分: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();