2010-10-22 102 views
0

我正在使用C#。 net和SQL server 2005.按网格视图页面上的索赔号显示数据

我上传文件(Word,PDF)到数据库中,并使用网格视图在页面上显示。

我有不同的索赔号码,如co50000006(如10行)。我的意思是索赔号码有不同的文件。我的桌子上还有其他索赔号。 (如c08000131,c01000001)。

我想在网格上只显示一个索赔号码行。我的意思是我的查询字符串显示的数字,我想在我的网格上显示特定的索赔号码(Request.QueryString["ClaimNum"];)。

请帮我这个。

我在页面页眉上获取声明号,并将该值插入表中。

protected void Page_Load(object sender, EventArgs e) 
{ 
     //Showing Claim Number on file upload. 
     lblFileUploadCliamNumber.Text = Request.QueryString["ClaimNum"]; 
} 

<asp:GridView ID="GridView1" runat="server" 
       AutoGenerateColumns="False" DataKeyNames="ID" 
       DataSourceID="SqlDataSource1" AllowPaging="True"> 
<Columns> 
<asp:BoundField DataField="ID" HeaderText="ID" 
       InsertVisible="False" ReadOnly="True" 
           SortExpression="ID" /> 

<asp:BoundField DataField="ClaimNumber" HeaderText="Claim Number" 
           SortExpression="ClaimNumber" /> 

    <asp:TemplateField HeaderText="Load Date"> 
    <ItemTemplate> 
    <asp:Label runat="server" ID="LoadDate" 
    Text='<%# String.Format("{0:M/d/yyyy}", Eval("LoadDate")) %>' /> 
    </ItemTemplate> 
    </asp:TemplateField>       

<asp:BoundField DataField="Description" HeaderText="Description" 
           SortExpression="Description" /> 
<asp:BoundField DataField="ContentType" HeaderText="ContentType" 
           SortExpression="ContentType" />        

<asp:TemplateField HeaderText="Data"> 
<ItemTemplate> 
    <%--<asp:Image ID="Image1" runat="server" 
      ImageUrl='<%# "FileUploadHandler.ashx?ID=" + Eval("ID")%>'/>--%>      
<asp:LinkButton ID="LinkButton1" runat="server" OnClick = "Retreive_Doc">Download</asp:LinkButton>  
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 

我在这里使用SQL查询:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ AppSettings:connString %>" 
SelectCommand="SELECT [ID], [ClaimNumber], [LoadDate], [Description], [ContentType], [Data] 
    FROM [tblFiles]"></asp:SqlDataSource> 

下面是使用文件upload.aspx.cs的我总码。

public partial class FileUpload : System.Web.UI.Page 
{ 

    private string redirectFrom = "FileUpload"; 


    protected void Page_Load(object sender, EventArgs e) 
    { 
     //Showing Claim Number on file upload. 
     lblFileUploadCliamNumber.Text = Request.QueryString["ClaimNum"]; 

    } 
    protected void Page_Init(object sender, EventArgs e) 
    { 

     WireEvents(); 

    } 

    private void WireEvents() 
    { 

     btnFileUploadClose.Click += new EventHandler(btnFileUploadClose_Click); 



    } 

    private void btnFileUploadClose_Click(object sender, EventArgs e) 
    { 
     ReturnToClaimInfo(); 
    } 


    private void ReturnToClaimInfo() 
    { 

     Response.Redirect(String.Format("/ClaimInfoView.aspx?ClaimNum={0}&ClaimCertSeqNo={1}&ClaimCovNum={2}&RedirectedFrom={3}" 
              , Request.QueryString["ClaimNum"] 
              , Request.QueryString["ClaimCertSeqNo"] 
              , Request.QueryString["ClaimCovNum"] 
              , redirectFrom)); 
    } 








    /// Different file types start 


    protected void btnUpload_Click(object sender, EventArgs e) 
    { 


     // Read the file and convert it to Byte Array 
     string strClaimNumber = lblFileUploadCliamNumber.Text.ToUpper(); 
     string strDate = DateTime.Now.ToShortDateString(); 

     string strDescription = txtDescription.Text.ToString(); 
     string filePath = FileUpload1.PostedFile.FileName; 
     string filename = Path.GetFileName(filePath); 
     string ext = Path.GetExtension(filename); 
     string contenttype = String.Empty; 

     //Set the contenttype based on File Extension 

     switch (ext) 
     { 
      case ".doc": 
       contenttype = "application/vnd.ms-word"; 
       break; 
      case ".docx": 
       contenttype = "application/vnd.ms-word"; 
       break; 
      case ".xls": 
       contenttype = "application/vnd.ms-excel"; 
       break; 
      case ".xlsx": 
       contenttype = "application/vnd.ms-excel"; 
       break; 
      case ".jpg": 
       contenttype = "image/jpg"; 
       break; 
      case ".png": 
       contenttype = "image/png"; 
       break; 
      case ".gif": 
       contenttype = "image/gif"; 
       break; 
      case ".pdf": 
       contenttype = "application/pdf"; 
       break; 

     } 

     if (contenttype != String.Empty) 
     { 


      Stream fs = FileUpload1.PostedFile.InputStream; 
      BinaryReader br = new BinaryReader(fs); 
      Byte[] bytes = br.ReadBytes((Int32)fs.Length); 


      //insert the file into database 

      string strQuery = "insert into tblFiles(Name, ContentType, Data, Description, ClaimNumber, LoadDate)" + 
       " values (@Name, @ContentType, @Data, @Description, @ClaimNumber, @LoadDate)"; 
      SqlCommand cmd = new SqlCommand(strQuery); 
      cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename; 
      cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value 
       = contenttype; 
      cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes; 
      cmd.Parameters.Add("@Description", SqlDbType.VarChar).Value = strDescription.ToString(); 
      cmd.Parameters.Add("@ClaimNumber", SqlDbType.NVarChar).Value = strClaimNumber.ToUpper(); 
      cmd.Parameters.Add("@LoadDate", SqlDbType.DateTime).Value = strDate.ToString(); 
      InsertUpdateData(cmd); 
      lblMessage.ForeColor = System.Drawing.Color.Green; 
      lblMessage.Text = "File Uploaded Successfully"; 
      if (lblMessage.Text == "File Uploaded Successfully") 
      { 
       txtDescription.Text = string.Empty; 
      } 
      //if(FileUpload1 != null) 
      //{ 
      // lblMessage.Text = string.Empty; 
      //} 
      GridView1.DataBind(); 
     } 

     else 
     { 

      lblMessage.ForeColor = System.Drawing.Color.Red; 
      lblMessage.Text = "File format not recognised." + 
       " Upload Word/PDF/Excel formats"; 

     } 

    } 


    private Boolean InsertUpdateData(SqlCommand cmd) 
    { 
     String strConnString = System.Configuration.ConfigurationManager 
     .AppSettings["connString"]; 
     SqlConnection con = new SqlConnection(strConnString); 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = con; 
     try 
     { 

      con.Open(); 
      cmd.ExecuteNonQuery(); 
      return true; 

     } 

     catch (Exception ex) 
     { 
      Response.Write(ex.Message); 
      return false; 

     } 

     finally 
     { 
      con.Close(); 
      con.Dispose(); 
     } 

    } 


    //Retrieve doc 
    protected void Retreive_Doc(object sender, EventArgs e) 
    { 
     string strQuery = "select Name, ContentType, Data from tblFiles where [email protected]"; 
     SqlCommand cmd = new SqlCommand(strQuery); 
     cmd.Parameters.Add("@id", SqlDbType.Int).Value = ((LinkButton) sender).CommandArgument; 
     DataTable dt = GetData(cmd); 
     if (dt != null) 
     { 

       download(dt); 
     } 
    } 

    // Get data 
    public DataTable GetData(SqlCommand cmd) 
    { 
     DataTable dt = new DataTable(); 
     String strConnString = System.Configuration.ConfigurationManager 
     .AppSettings["connString"]; 
     SqlConnection con = new SqlConnection(strConnString); 
     SqlDataAdapter sda = new SqlDataAdapter(); 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = con; 

     try 
     { 
      con.Open(); 
      sda.SelectCommand = cmd; 
      sda.Fill(dt); 
      return dt; 
     } 
     catch 
     { 
      return null; 
     } 
     finally 
     { 
      con.Close(); 
      sda.Dispose(); 
      con.Dispose(); 
     } 
    } 

    // download file 
    public void download(DataTable dt) 
    { 
     Byte[] bytes = (Byte[])dt.Rows[0]["Data"]; 
     Response.Buffer = true; 
     Response.Charset = ""; 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.ContentType = dt.Rows[0]["ContentType"].ToString(); 
     Response.AddHeader("content-disposition", "attachment;filename=" 
      + dt.Rows[0]["Name"].ToString()); 
     Response.BinaryWrite(bytes); 
     Response.Flush(); 
     Response.End(); 
    } 

    //end 
    } 
} 

回答

0

你有没有考虑

SelectCommand="SELECT [ID], [ClaimNumber], [LoadDate], [Description], [ContentType], [Data] FROM [tblFiles] where [ClaimNumber] = " Request.QueryString["ClaimNum"]>