gpt4 book ai didi

c# - 从 ???_GetDisplayData 和 GROUP 数据中按天选择 DataTable(只有一些值),其中组规则对于不同的列是不同的

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:55 25 4
gpt4 key购买 nike

Overflow :3 我有一个疑难问题。

So I'll try clearly explain my idea with my poor english :/ need select to DataTable SOME values from ???_GetDisplayData procedure for each day of previos month (GROUP IT) where group rules for different columns is different

我需要像这样从其他存储过程中选择存储过程中的一些值:

SELECT X FROM Y_Procedure(@ProcedureParameters)

我还需要从动态 SQL Procedure 中选择

Y_Procedure=@Y+'_Procedure'
SELECT X FROM Y_Procedure(@ProcedureParameters)

我还需要将它加载到 DataTable :-/

INSERT INTO @Report (CellHorizontal, CellVertical, CellValue) --to TABLE
SELECT Date,X2,X3 FROM Y_GetDisplayData(@Param)

SET NOCOUNT OFF;

SELECT *
FROM @Report

GetDisplayData 用作带参数的选择,不返回 SQL DataTable并且无法重新编码 GetDisplayData 的程序,它对我来说只是常量程序。

最后我需要从这个表中对节点进行分组

    INSERT INTO @Report (CellHorizontal, CellVertical, CellValue) 
SELECT T1.Date,
IF ((Select grouptype...)=1) T1.X2 + T2.X2
ELSE IF ((Select grouptype...)=2) AVG(T1.X2,T2.X2),
IF ((Select grouptype...)=1) T1.X3 + T2.X3
ELSE IF ((Select grouptype...)=2) AVG(T1.X3,T2.X3),
(SELECT T2.Date,X2,X3 FROM Y_GetDisplayData(@Param) T2
WHERE T2.Date>T1.Date AND T2.Date>=T1.Date)
FROM Y_GetDisplayData(@Param) T1
GROUP BY EVERY DAY ???
--and here is epic fail

我可以在 asp 服务器上制作所有东西:

C# 允许我使用类似 SelectCommand = IzmProc + "_GetDisplayData";

然后我将在 ASP.NET 服务器上使用 DataTables(选择特殊数据),但最好在 SQL 上进行所有操作......但看起来它在 SQL 上是无法实现的 >_<

我要考虑C#实现

但是我的代码很奇怪,有错误而且不起作用>_<

    public static DataTable GetReport(string Param)
{
System.Configuration.ConnectionStringSettings connSetting = ConfigurationManager.ConnectionStrings["FlowServerConnectionString"];
SqlConnection conn = new SqlConnection(connSetting.ConnectionString);
SqlCommand cmd = new SqlCommand(Param + " _GetDisplayData 90,1,1,80,1,1,0");
try
{
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);

//------------------------------------------------------------
int dayOfWeekNumber = (int)DateTime.Today.DayOfWeek - (int)System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
var previosWeekFirstDay = DateTime.Today.AddDays(-7 - dayOfWeekNumber);
var yearsterday = DateTime.Today.AddDays(-1);
var previosWeekLastDay = previosWeekFirstDay.AddDays(6);
var previosMonthFirstDay = DateTime.Today.AddMonths(-1);
previosMonthFirstDay = previosMonthFirstDay.AddDays(-previosMonthFirstDay.Day + 1);
var previosMonthLastDay = previosMonthFirstDay.AddDays(DateTime.DaysInMonth(previosMonthFirstDay.Year, previosMonthFirstDay.Month) - 1);
//-------------------------------------------------------------
//Ok... now I need to group it on DT->everyday in month
DataRow[] drx;
DataTable newDT= new DataTable();
foreach (DataRow row in dt.Rows)
{
string s = row["DailyRecTime"].ToString();
drx = dt.Select("DailyRecTime= '" + s + "'");
for (DateTime x = previosMonthFirstDay; x <= previosMonthLastDay; x.AddDays(1))
{
foreach(DataRow drr in drx)
if (x.ToString() == drr[0].ToString())
{
drx = dt.Select("DailyRecTime= '" + s + "'");
DataRow newRow = new DataRow(); //ERROR HERE
double[] temp = new double[drx[0].Table.Columns.Count];
foreach (DataRow dr in drx)
{
for(int dc=1; dc<dr.Table.Columns.Count; dc++)
{
if (dr.Table.Columns[dc].Caption.ToString() == "C1_mol") //for example
temp[dc] += double.Parse(dr[dc].ToString()); // nonsense
}
}
foreach (DataColumn dcl in drx[0].Table.Columns)
{
newRow.Table.Columns.Add(dcl);
newRow[dcl] = temp[dcl]; //error here :)
}
newDT.Rows.Add(newRow);
}
}
}

return newDT;
}
catch (Exception)
{
return null;
}

我的天啊……:-/

感谢您阅读并试图帮助我 :3

最佳答案

 DataRow newRow = new DataRow(); //ERROR HERE 

尝试

DataRow newRow = dt.NewRow();

关于c# - 从 ???_GetDisplayData 和 GROUP 数据中按天选择 DataTable(只有一些值),其中组规则对于不同的列是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2377790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com