解决方案 »

  1.   

    一般下载附件,就是在在你的点击事件里调用下载函数,代入你的路径就OK了,如果有多个附件,你就循环代入路径就好了啊,
    反正你的意思表述不清楚,如果你是说的SQL查询的结果只有一个的话,那就是你自己写的SQL语句有问题,既然你要关联到多个附件,肯定查询出来会有多个附件的路径,如果每个路径是分开存的,你只需要单独代入下载函数就好了,如果你的路径是存在一个字段中,比如 【123.doc|abc.doc|567.txt|efg.xls】这种格式的话,你需要先把它按“|”拆分开,再分别代入下载函数就好了。说实话,写了这么多,其实还是不知道你问的到底是什么,
      

  2.   

    我的问题是这样的:我用hyperlink从数据库查到附件路径,但是我的方法只能查到一个实体类,只能查到一个路径,现在有两个附件,我该怎么办?
      

  3.   


    如图,这时另一个表,我根据runningno查询数据,但是我的方法只能查到一条数据,我该怎么没办
      

  4.   

    如果是根据用户ID 上传的附件,肯定要根据这个ID的啊,不可能用户上传附件,上传两个,查询的时候只查询到一个,
         你设计的不合理啊!
      

  5.   

     public TC_TaxiInfo GetModelBySql(Guid TaxiID)
            {
                StringBuilder sbSql = new StringBuilder();
                sbSql.Append(@"SELECT TaxiID,TaxiBrandNumdbo.Rpt_GetDictionaryNameSql(CarModels,'TaxiType') CarModels, CMDS_PrivateDictionaryItem.name as TaxiUnit,CertificateTime,ManufactureDate,YearCarefulTime,CertificatePeriod,SeatingNumber,Attach,Picture,Re,TC_Taxi.OrganiseUnitID,TC_Taxi.CreatedBy,TC_Taxi.CreatedDate,TC_Taxi.ModifiedBy,TC_Taxi.ModifiedDate 
    FROM [TC_Taxi]
                        Left join  CMDS_Annex on CMDS_Annex.RunningNo=TC_Taxi.Attach
                         WHERE TaxiID=@TaxiID ");
                                              int n = 0;
                SqlParameter[] parameters = {
    new SqlParameter("@TaxiID", SqlDbType.UniqueIdentifier)};
                parameters[n++].Value = TaxiID;            TC_TaxiInfo model = null;
                //执行查询
                using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.LocalTrafficConnectionString, CommandType.Text, sbSql.ToString(), parameters))
                {
                    model = new TC_TaxiInfo();
                    if (rdr.Read())
                    {
                        model.TaxiID = (new Guid(rdr[TC_TaxiInfo.TAXIID_FIELD].ToString()));
                        model.TaxiBrandNum = rdr[TC_TaxiInfo.TAXIBRANDNUM_FIELD].ToString();
                        model.TaxiCertificate = rdr[TC_TaxiInfo.TAXICERTIFICATE_FIELD].ToString();
                        model.Name = rdr[TC_TaxiInfo.NAME_FIELD].ToString();
                        
                    }
                            }
                return model;
            }
      

  6.   

    Default.aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:Panel ID="pnlContainer" runat="server">
            </asp:Panel>
        </form>
    </body>
    </html>
    Default.aspx.cs
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Collections.Generic;namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!this.IsPostBack) 
                {
                    List<Attachment> list = GetList();
                    if (list != null && list.Count > 0) 
                    {
                        foreach (Attachment item in list) 
                        {
                            //加入链接
                            HyperLink link = new HyperLink();
                            link.Text = item.Name;
                            link.NavigateUrl = item.Url;
                            this.pnlContainer.Controls.Add(link);
                            //加一个回车, 没有别的用意, 只为分开两者, 更显眼
                            Literal lt = new Literal();
                            lt.Text = "<br/>";
                            this.pnlContainer.Controls.Add(lt);
                        }
                    }
                }
            }        public List<Attachment> GetList() 
            {
                List<Attachment> list = new List<Attachment>()
                {
                    new Attachment(){ Name="百度", Url="http://www.baidu.com" },
                    new Attachment(){ Name="新浪", Url="http://www.sina.com" }
                };            return list;
            }
        }    public class Attachment 
        {
            public string Name { get; set; }        public string Url { get; set; }
        }
    }
    亲测可用。
    效果图:
    如有空,帮我投个票: http://vote.blog.csdn.net/blogstar2014/details?username=yenange#content
      

  7.   

    投票已经结束
    public TC_TaxiInfo GetModelBySql(Guid TaxiID)
            {
                StringBuilder sbSql = new StringBuilder();
                sbSql.Append(@"SELECT TaxiID,TaxiBrandNumdbo.Rpt_GetDictionaryNameSql(CarModels,'TaxiType') CarModels, CMDS_PrivateDictionaryItem.name as TaxiUnit,CertificateTime,ManufactureDate,YearCarefulTime,CertificatePeriod,SeatingNumber,Attach,Picture,Re,TC_Taxi.OrganiseUnitID,TC_Taxi.CreatedBy,TC_Taxi.CreatedDate,TC_Taxi.ModifiedBy,TC_Taxi.ModifiedDate 
                        FROM [TC_Taxi]
                        Left join  CMDS_Annex on CMDS_Annex.RunningNo=TC_Taxi.Attach
                                            WHERE TaxiID=@TaxiID ");
                                   
     
                int n = 0;
                SqlParameter[] parameters = {
                        new SqlParameter("@TaxiID", SqlDbType.UniqueIdentifier)};
                parameters[n++].Value = TaxiID;
     
                TC_TaxiInfo model = null;
                //执行查询    
                using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.LocalTrafficConnectionString, CommandType.Text, sbSql.ToString(), parameters))
                {
                    model = new TC_TaxiInfo();
                    if (rdr.Read())
                    {
                        model.TaxiID = (new Guid(rdr[TC_TaxiInfo.TAXIID_FIELD].ToString()));
                        model.TaxiBrandNum = rdr[TC_TaxiInfo.TAXIBRANDNUM_FIELD].ToString();
                        model.TaxiCertificate = rdr[TC_TaxiInfo.TAXICERTIFICATE_FIELD].ToString();
                        model.Name = rdr[TC_TaxiInfo.NAME_FIELD].ToString();
                         
                    }
                            }
                return model;
            }
    请问我这段代码怎么改?我从A表查出所有信息,其中有字段RunningNo,然后我根据RunningNo查询Attachmentde的信息,但是我的方法只能返回一个实体类,就是除了附件的字段为两个,sql语句应该怎么改,实体类怎么改?
      

  8.   

    或者对于附件的查询能不能用linq,用linq怎么写?
      

  9.   

    问题应该出在你的sql语句上, 你先把sql 在数据库里执行一下, 如果得不到你想要的结果就是sql语句没写对。   不要是因为使用了左连接。
      

  10.   

    SELECT TaxiID,TaxiBrandNum,CMDS_Annex.name as AttachName,url,TaxiCertificate,TC_Taxi.Name,CertificateTime,ManufactureDate,YearCarefulTime,CertificatePeriod,SeatingNumber,Attach,Picture,Re,TC_Taxi.OrganiseUnitID,TC_Taxi.CreatedBy,TC_Taxi.CreatedDate,TC_Taxi.ModifiedBy,TC_Taxi.ModifiedDate 
    FROM [TC_Taxi]
                        Left join  CMDS_Annex on CMDS_Annex.RunningNo=TC_Taxi.Attach
                       
    WHERE TaxiID='875a3b50-7380-4c2c-99ac-0a066b96b4bf'这个是sql语句和运行结果
      

  11.   

    一看问题就知道楼主用的mvc,你的model对象里面的额附件子对象用list不就可以了
      

  12.   

    return model;
    把model放在一个List<model类型>的集合里面,list.add(model)
    最后return 这个list就可以了。记得把方法类型改成List<model类型>。根据这个思路,应该可以写出来
      

  13.   

    public List<TC_TaxiInfo> GetModelBySql(Guid TaxiID)
    {
        List<TC_TaxiInfo> list = new List<TC_TaxiInfo>();
        StringBuilder sbSql = new StringBuilder();
        sbSql.Append(@"SELECT TaxiID,TaxiBrandNumdbo.Rpt_GetDictionaryNameSql(CarModels,'TaxiType') CarModels, CMDS_PrivateDictionaryItem.name as TaxiUnit,CertificateTime,ManufactureDate,YearCarefulTime,CertificatePeriod,SeatingNumber,Attach,Picture,Re,TC_Taxi.OrganiseUnitID,TC_Taxi.CreatedBy,TC_Taxi.CreatedDate,TC_Taxi.ModifiedBy,TC_Taxi.ModifiedDate 
                FROM [TC_Taxi]
                Left join  CMDS_Annex on CMDS_Annex.RunningNo=TC_Taxi.Attach
                                    WHERE TaxiID=@TaxiID ");
        int n = 0;
        SqlParameter[] parameters = {
                new SqlParameter("@TaxiID", SqlDbType.UniqueIdentifier)};
        parameters[n++].Value = TaxiID;    
        //执行查询    
        using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.LocalTrafficConnectionString, CommandType.Text, sbSql.ToString(), parameters))
        {
            while (rdr.Read())
            {
                TC_TaxiInfo model = new TC_TaxiInfo();
                model.TaxiID = (new Guid(rdr[TC_TaxiInfo.TAXIID_FIELD].ToString()));
                model.TaxiBrandNum = rdr[TC_TaxiInfo.TAXIBRANDNUM_FIELD].ToString();
                model.TaxiCertificate = rdr[TC_TaxiInfo.TAXICERTIFICATE_FIELD].ToString();
                model.Name = rdr[TC_TaxiInfo.NAME_FIELD].ToString();            list.Add(model);
            }
        }
        return list;
    }代码类似上面了……
    楼主是学生么?