2017-03-07 2 views
0

문서를 Gridview에 업로드 한 다음 데이터베이스에 저장하는 양식이 있습니다. 폼을로드하려면 GridView에로드 된 문서 정보를 가져올 수 없습니다. AlertMessage도 파일을 읽었는지 알 수 있도록 넣었습니다. 그래서 파일을로드 할 때 "Table is empty"메시지가 나타납니다. 그리드에 정보를로드하기 위해 내가해야 할 일이 무엇인지 모르겠습니다. 제발 도와주세요. 여기 내 코드는 다음과 같습니다.SQLServer에서 GridView에 대한 바인딩 정보가 C#에서 작동하지 않습니다.

<asp:GridView ID="gvUploadDocumentList" runat="server" AutoGenerateColumns="False" 
        BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" 
        BorderWidth="1px" CellPadding="4" EmptyDataText="No files uploaded" 
        ForeColor="Black" GridLines="Horizontal" style="text-align: center; 
        margin:0px auto;" Width="800px"> 
      <Columns> 
       <asp:BoundField DataField="Filename" HeaderText="File Name" /> 
       <asp:TemplateField> 
         <ItemTemplate> 
           <asp:LinkButton ID="lnkDelete" runat="server" CommandArgument='<%# Eval("ID") %>' Text="Delete" OnClick="DeleteFile" /> 
         </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
       <FooterStyle BackColor="#CCCC99" ForeColor="Black" /> 
       <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" /> 
       <PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" /> 
       <SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" /> 
       <SortedAscendingCellStyle BackColor="#F7F7F7" /> 
       <SortedAscendingHeaderStyle BackColor="#4B4B4B" /> 
       <SortedDescendingCellStyle BackColor="#E5E5E5" /> 
       <SortedDescendingHeaderStyle BackColor="#242121" /> 
    </asp:GridView> 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!page.IsPostBack) 
     { 
      LoadRequestInfo(); 
      LoadDocuments(); 
     } 
    } 

    public void LoadDocuments() 
    { 
     CommonCollection c = new CommonCollection(); 
     var CTS = c.COMPTRACKERCONNECTIONSTRING(); 
     var CTS_conn = new SqlConnection(CTS.ConnectionString); 
     try 
     { 
      SqlCommand cmd = new SqlCommand("CTS_GetDocuments", CTS_conn); 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.Parameters.Add(new SqlParameter("@RequestId", "1F0C0732-34CD-48DC-9730-268FE17BAF03")); 
      SqlDataAdapter da = new SqlDataAdapter(cmd); 
      DataSet ds = new DataSet(); 
      CTS_conn.Open(); 
      da.Fill(ds); 
      CTS_conn.Close(); 

      if (ds != null && ds.Tables[0].Rows.Count > 0) 
      { 
       gvUploadDocumentList.DataSource = ds; 
       gvUploadDocumentList.DataBind(); 
       ShowAlertMessage("Table is not empty"); 
      } 
      else 
       ShowAlertMessage("No Data"); 
     } 
     catch (Exception ex) 
     { 
       ShowAlertMessage(ex.Message.ToString()); 
     } 
    } 
+0

태그 하나 또는 두 개를 잊어 버리셨습니까? SQL은 쿼리 언어입니다. 그게 전부 야. C#은 어떻습니까? 귀하의 DB 기술? (SQL 서버인가요? 오라클입니까?) –

+0

제출하는 동안 태그를 추가했지만 왜 태그를 사용하지 않았는지 확신 할 수 없습니다. 나는 그들을 다시 추가했다. – user2116846

+0

'catch'블록도 넣으십시오. 예외가 던져 질 가능성이 높으며 방금 무시하고 있습니다. – TheVillageIdiot

답변

0

목록에있는 내용에 따라 LoadDocuments() 메소드를 호출하는 코드가 표시되지 않습니다. 이것이 PageLoad() 메서드에서 호출되지 않고 단추 또는 다른 호출도없는 경우에는 데이터를 그리드 뷰로 가져올 수 없습니다.

이 문제가 발생하는지 확인하는 가장 쉬운 방법은 메서드 시작 부분에 코드를 삽입하고 VS가 코드를 단계별로 실행하지 않으면 문제가되는 것입니다.

+0

필자는 pageload 함수에서 loaDocument() 메서드를 호출했습니다. 그냥 여기에 게시하지 않았다. 나는 그 부분을 지금 추가했다. 하지만 그건 문제가 아닙니다. 그것은 메서드를 읽습니다. 그리드에 데이터를로드하지 않는 이유는 모르겠습니다. – user2116846

관련 문제