このかなり大きなプロジェクトでは、Infragistics WebDataGridを使用しています。何が起こる必要があるのは、ユーザーが2つの日付を選択し、アセンブリ番号の欠陥情報が10個のWebDatagridのうちの少なくとも1つに表示される場合です。ほとんどの場合、2つ以上の欠陥情報があります。私は古いVB.NETのWindowsフォームアプリケーションとの結果を比較しています。私は正常にSPを実行して結果を得ることができますが、データグリッドは1つしか結果ではなく、他のグリッドには情報が含まれていません。セキュリティのために接続の詳細を削除しました。私は事前に助けていただきありがとうございます。C#データがDataGrid SQLを循環しないSP
C#コード ます。private voidメッセージボックス(文字列MSG) { Page.Controls.Add(新しいLiteralControl( "のwindow.alert( '" + msg.Replace( "'"、 "\ '") + "')")); }
private void getDefects(string workArea, WebDataGrid webDG)
{
if (wdpStartDate.Text == "" || wdpEndDate.Text == "")
{
MessageBox("You must provide values for Start Date and End Date!");
}
else
{
//Create a connection to the SQL Server on IIS01.
//Establishes the command structure for the stored procedure Top5Defects.
SqlCommand cmd = new SqlCommand("dbo.Top5Defects", iis01Connection);
cmd.CommandType = CommandType.StoredProcedure;
//Establishes the required parameters to pass to the stored procedure.
cmd.Parameters.AddWithValue("@StartDate", wdpStartDate.Date.ToShortDateString());
cmd.Parameters.AddWithValue("@EndDate", wdpEndDate.Date.ToShortDateString());
cmd.Parameters.AddWithValue("@Assembly", Assemblies.CurrentValue);
cmd.Parameters.AddWithValue("@WorkArea", workArea);
iis01Connection.Open();
SqlDataReader dr = cmd.ExecuteReader();
webDG.DataSource = dr;
webDG.DataBind();
}
}
public void GetDefectHistory()
{
getDefects("SL", wdgSL);
getDefects("PW", wdgPW);
getDefects("SMT", wdgSMT);
getDefects("SS/Wave", wdgSSWV);
getDefects("AI", wdgAI);
getDefects("ICT", wdgICT);
getDefects("FT", wdgFT);
getDefects("CC", wdgCC);
getDefects("EM", wdgEM);
getDefects("TC", wdgTC);
}
protected void btnResults_Click(object sender, EventArgs e)
{
GetDefectHistory();
}
ストアドプロシージャ USEが[EMSDatabase] /******オブジェクトGO:のStoredProcedure [DBO] [Top5Defects]スクリプト日:2016年10月18日10時15分を: GO ON GO のSET QUOTED_IDENTIFIER ON 48 PM ******/ のSET ANSI_NULLS - ========================== =================== - 著者:Trent Adams> - 作成日:10-13-2016 - 説明:EMSデータベースのストアドプロシージャの上位のエラー - =========================== ======== ALTER PROCEDURE [DBO]。[Top5Defects] @StartDate DATETIME、 @EndDate DATETIME、 @Assembly VARCHAR(50)、 @WorkArea VARCHAR(50)
AS
--Declare @WorkArea as VARCHAR(50)
--Set @WorkArea ='SL'
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT Top 5 Sum(Quantity) AS 'Sum', DefectCode As Defect, PartInvolved AS Part
FROM EMSDefectHistory
WHERE DateEntered Between @StartDate AND @EndDate
AND Assembly = @Assembly
AND WorkArea = @WorkArea
GROUP BY DefectCode, PartInvolved
ORDER BY Sum(Quantity) DESC
END