2016-10-19 5 views
0

このかなり大きなプロジェクトでは、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 

答えて

0

VB.NETコードを読んでいると私は目が見えませんでした。機能テスト(FT)とインサーキットテスト(ICT)は異なるテーブルを使用しているため、それぞれのFT/ICTのメソッドを作成する必要がありました。