首页 新闻 会员 周边 捐助

.netmvc多表联合查询并且可以导表

0
悬赏园豆:15 [已解决问题] 解决于 2018-03-30 18:36

大家有没有类似的小项目demo给我学习一下之类的?打了一堆字,算了,不找借口,我不会啊。看了很多园子里的代码和项目。没有学到精髓?

 

公司丢了一个需求给我就是根据查询语句把数据展示在网站前台,并且可以下载。看了很多文章,但是时间紧迫,没有太多的时间研究原理。焦头烂额。请大佬们指条明路。哭死

问题补充:

我不想做伸手党啊,但是,我怕时间来不及。。。我很慌

田野。的主页 田野。 | 初学一级 | 园豆:157
提问于:2018-03-30 01:17

EF多表查询可以百度下例子,导出的话用NPOI就可以了

Crazydragcool 6年前

@Crazydragcool: 恩恩额 我也注意到这个NPOI了,就在想,这种歌插件是否能够运用于我们公司的项目。不过还是很谢谢!

多巴胺。 6年前

@多巴胺。: 可以的,显示你做个报表,导出做个按钮,导出显示报表返回的datatable就可以了,网上很多方法的

Crazydragcool 6年前
< >
分享
最佳答案
1
多表查询用left join吧:例如 select f_name(你需要在前台显示的字段名称) from t_class(表名1) as c(别名)  left join t_student(表名2)  as s(别名) on

c.id(表名1的主键) = s.f_id(表名2的外键)也可以其他字段,但是必须两边都有相同的值 where 条件 c.className ='五年级';

上面是查询语句,

现在做数据层的交换,建立一个类,如下:

        public IList<StudentInfo> GetUserInfoAll(string connStr(数据库连接字符串), string sqlStr(查询语句))
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                using (SqlCommand cmd = new SqlCommand(sqlStr,conn))
                {
                    SqlDataReader sdr = cmd.ExecuteReader();
                    IList<StudentInfo> list = new List<StudentInfo>();
                    while (sdr.Read())
                    {
                        StudentInfo studentInfo= new StudentInfo();
                        StudentInfo.ID = (Guid) sdr["ID"];
                        StudentInfo.Name = sdr["studentName"].ToString();
                        StudentInfo.Class = sdr["studentNum"].ToString();
                        list.Add(studentInfo);
                    }
                    return list;
                }
            }
     }
收获园豆:15
对象不是老婆 | 菜鸟二级 |园豆:316 | 2018-03-30 10:33

得到一个集合后在WEB显示页面用foreach循环把数据遍历出来,动态生成列表 ,这样我们就可以在网页上看到查询的数据了。在显示数据的窗口加一个下载文档按钮,并绑定点击事件,我们在上面获得数据的同时,也可以把数据保存本地。

  private void saveClick(list<StudentInfo>student, EventArgs e)  
      {  
          SaveFileDialog file = new SaveFileDialog();//定义新的文件保存位置控件  
          file.Filter = "txt文件(*.txt)|*.txt";//设置文件后缀的过滤  
          if (file.ShowDialog() == DialogResult.OK)//如果有文件保存路径  
          {  
              StreamWriter sw = File.CreateText(file.FileName);  
              foreach(string mes in student){
                    sw.Write(mes);  //写入文件中 
              }              
              sw.Flush();//清理缓冲区  
              sw.Close();//关闭文件  
          }  
  
      }         

当点击保存按钮时执行上面的代码,所有的问题就解决了

对象不是老婆 | 园豆:316 (菜鸟二级) | 2018-03-30 10:53

嗯嗯,我先试试,再采纳之类的哦

田野。 | 园豆:157 (初学一级) | 2018-03-30 10:53

@多巴胺。: 对了还建一个StudentInfo实体类,就是装数据的,用来传输数据用的,

public StudentInfo(){
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private Class myClass;

        internal Class MyClass
        {
            get { return myClass; }
            set { myClass = value; }
        } }

相当于你有几个表就要建立几个实体类,记得要给SET和GET方法啊;

对象不是老婆 | 园豆:316 (菜鸟二级) | 2018-03-30 11:00

@对象不是老婆: 唔,少侠  给个QQ不,我怕写出来有错误。预约你一下 = =  

田野。 | 园豆:157 (初学一级) | 2018-03-30 14:55

@多巴胺。: 给你的邮箱发给你

对象不是老婆 | 园豆:316 (菜鸟二级) | 2018-03-30 15:48

@对象不是老婆: 

田野。 | 园豆:157 (初学一级) | 2018-03-30 15:50

@多巴胺。: 话说我是学JAVA的,上个星期才学.net很多不熟悉,其实你问的问题在网上有很多答案,我这个是最LOW的没啥可讲,我也在学习知识,只要用多了,自然就知道了。

对象不是老婆 | 园豆:316 (菜鸟二级) | 2018-03-30 16:48

@对象不是老婆: 太急功近利了我,敲了一些项目,觉得他们的不能符合我的要求,我也百度啦,都是抄的,还不全面

田野。 | 园豆:157 (初学一级) | 2018-03-30 16:49

@多巴胺。: 你是自己做的项目,还是照着把别人的项目敲一遍,如果是前者是一种好的学习方法,如果是后者这就需要花心思去学了。

对象不是老婆 | 园豆:316 (菜鸟二级) | 2018-03-30 16:54

@对象不是老婆:  = = 敲别人的。因为自己没有一个好的思路,虽然感觉自己的才是通透的

田野。 | 园豆:157 (初学一级) | 2018-03-30 17:32

@对象不是老婆: 主要的思路 就这四步是么?   = = 

田野。 | 园豆:157 (初学一级) | 2018-04-02 11:54

@多巴胺。:首先建立数据库和表,其次连接数据库,把数据库中想要得到的数据封装好传给前端,最后你可以用我的方法用IO流的方法把数据下载到本地,简单点的就去网上搜封装好的,例如POI,数据放进去,给它一个存放路径。调用它就可以了,其实有很多方法的,我的只是基础的。

对象不是老婆 | 园豆:316 (菜鸟二级) | 2018-04-02 15:40
其他回答(5)
0

虽然不懂,路过帮顶~

拆炸弹的文青 | 园豆:212 (菜鸟二级) | 2018-03-30 09:31

x蟹蟹~么么崽子

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 09:50

q抱歉抱歉!不是很会用这个博问!本来每个人都有豆豆的(除了一楼的崽子),但是结错账了!抱歉,希望你们可以看到这个。

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 18:38
0

显示数据应该会吧

下载数据请参考 https://blog.csdn.net/wybshyy/article/details/52232642

zhibudao | 园豆:525 (小虾三级) | 2018-03-30 10:06

NPOI 可以么?  看着好像挺舒服的  = = 

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 10:51

@多巴胺。: 可以 参考 https://www.cnblogs.com/Raning/p/5872822.html

但是我建议你以完成任务为首 别管用什么做

支持(0) 反对(0) zhibudao | 园豆:525 (小虾三级) | 2018-03-30 10:54
0
dudu | 园豆:30778 (高人七级) | 2018-03-30 10:08

那我看看学习一下哦,好像看园子里有大神写了自己的框架还是啥的? http://www.cnblogs.com/fish-li/archive/2012/07/17/ClownFish.html

 

就这个

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 10:52
0

哇,好多人帮你啊!

数据显示到界面,这一步搞定了吗?

西漠以西 | 园豆:1675 (小虾三级) | 2018-03-30 15:47

因为这个问题并不是很复杂啊(大家超好的!),简单的数据显示我会了,复杂的多表查询 好像要用LING,在看。

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 15:48

@多巴胺。: 

“公司丢了一个需求给我就是根据查询语句把数据展示在网站前台,并且可以下载”

查询语句别人帮你写好的,还是需要你自己写?如果得自己写,你需要学点SQL。

支持(0) 反对(0) 西漠以西 | 园豆:1675 (小虾三级) | 2018-03-30 15:51

@西漠以西: SQL我会写,只是这个代码,就需要自己啦

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 15:52

@西漠以西: 楼上的一个大佬把SQL 格式都给我了,哈哈哈,很细心

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 15:52
0

ExcelReport 了解一下,做个导出。

http://www.cnblogs.com/hanzhaoxin/p/4232575.html

浪橙悠悠 | 园豆:212 (菜鸟二级) | 2018-03-30 17:01

这个好像很高端的样子,我研究研究 = =  THK~

支持(0) 反对(0) 田野。 | 园豆:157 (初学一级) | 2018-03-30 17:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册