找了个项目中的代码,你参考吧 VB.NET 环境的 Private Function ReadData(ByVal TName As String, ByVal A As String, ByVal B As String, ByVal C As String, ByVal bvalue As String, ByVal SqlText As String, Optional ByVal value As String = "1", Optional ByVal DescFlag As Boolean = False) As DataTable Dim tb As DataTable = mydb.fill(New DataTable, SqlText) Dim STR As String = "SELECT " & bvalue Dim DR As DataRow For Each DR In tb.Rows STR &= ",SUM(DECODE(" & A & ",'" & DR(0) & "'," & value & ")) AS " & DR(1) Next STR &= ",SUM(" & value & ") AS 合计 from " & TName & " group by " & B & " order by " & C If DescFlag Then STR &= " desc" tb.Dispose() tb = mydb.fill(New DataTable, STR) Return tb End Function
大神,有没有asp.net的代码事例,VB我没学过,谢谢了
C#版的,重点参考下思路,mydb是我们这公用的一个类 private DataTable ReadData(string TName, string A, string B, string C, string bvalue, string SqlText, string value = "1", bool DescFlag = false) { DataTable tb = mydb.fill(new DataTable(), SqlText); string STR = "SELECT " + bvalue; DataRow DR = null; foreach (DataRow DR_loopVariable in tb.Rows) { DR = DR_loopVariable; STR += ",SUM(DECODE(" + A + ",'" + DR[0] + "'," + value + ")) AS " + DR[1]; } STR += ",SUM(" + value + ") AS 合计 from " + TName + " group by " + B + " order by " + C; if (DescFlag) STR += " desc"; tb.Dispose(); tb = mydb.fill(new DataTable(), STR); return tb; }
将拼接的sql语句直接拿去执行查询就是了
有没有具体的代码例子,指导指导,我是新手,万分感谢!
Private Function ReadData(ByVal TName As String, ByVal A As String, ByVal B As String, ByVal C As String, ByVal bvalue As String, ByVal SqlText As String, Optional ByVal value As String = "1", Optional ByVal DescFlag As Boolean = False) As DataTable
Dim tb As DataTable = mydb.fill(New DataTable, SqlText)
Dim STR As String = "SELECT " & bvalue
Dim DR As DataRow
For Each DR In tb.Rows
STR &= ",SUM(DECODE(" & A & ",'" & DR(0) & "'," & value & ")) AS " & DR(1)
Next
STR &= ",SUM(" & value & ") AS 合计 from " & TName & " group by " & B & " order by " & C
If DescFlag Then STR &= " desc"
tb.Dispose()
tb = mydb.fill(New DataTable, STR)
Return tb
End Function
private DataTable ReadData(string TName, string A, string B, string C, string bvalue, string SqlText, string value = "1", bool DescFlag = false)
{
DataTable tb = mydb.fill(new DataTable(), SqlText);
string STR = "SELECT " + bvalue;
DataRow DR = null;
foreach (DataRow DR_loopVariable in tb.Rows) {
DR = DR_loopVariable;
STR += ",SUM(DECODE(" + A + ",'" + DR[0] + "'," + value + ")) AS " + DR[1];
}
STR += ",SUM(" + value + ") AS 合计 from " + TName + " group by " + B + " order by " + C;
if (DescFlag)
STR += " desc";
tb.Dispose();
tb = mydb.fill(new DataTable(), STR);
return tb;
}