c#MVC using的用法

原创 2015年07月08日 15:43:45

今天研究公司的mvc项目的时候,才发现using(){},一开始不知道干嘛的,搜索也搜不到相关资料,就找了好多的关键字搜索了一下,终于在一篇博客上找到了这个用法,给大家跟我一样接触编程不久的新手学习一下。

using这个关键字在C#中共用三个用法:  (最重要的是第三种方法,我先放一个我看到的实例)

例子:之前在webform中用到的连接字符串,每次调用ado的时候需要conn.open();用完之后一定要关闭,conn.close();这是我在最近项目中看到的类似于sqlhelper的东西:

public class DBContext : IDisposable
    {
        private static string connectionString;
        private static DbProviderFactory dbfactory;
        private DbConnection conn;

        static DBContext()
        {
            if (ConfigurationManager.ConnectionStrings.Count < 0)
                throw new ConnectionStringException();
            ConnectionStringSettings css = ConfigurationManager.ConnectionStrings["strCon"];
            dbfactory = DbProviderFactories.GetFactory(css.ProviderName);
            connectionString = css.ConnectionString;
        }

        public DBContext()
        {
            this.conn = dbfactory.CreateConnection();
            this.conn.ConnectionString = connectionString;
            this.conn.Open();
        }

        ~DBContext()
        {
            Dispose(false);
        }

        public DataTable OpenQuery(string sql, params object[] args)
        {
            DataTable dt = new DataTable();
            using (DbDataAdapter adapter = dbfactory.CreateDataAdapter())
            {
                using (DbCommand cmd = PrepareCommand(sql, args))
                {
                    adapter.SelectCommand = cmd;
                    adapter.Fill(dt);
                }
            }
            return dt;
        }

上面这些东西就是一部分我现在看到的DBcontext了,不是很明白dbfactory的出现,不是每次new一下是实例化么,在我的印象里实例化就是new,有点小尴尬。。

接下来是项目中控制器中的一段代码:sql_supply与,sql_demmand,是两个执行查询的SQL语句

 using (DBContext context = new DBContext())
            {
                ViewData["dt_supply"] = context.OpenQuery(sql_supply);
                ViewData["dt_demmand"] = context.OpenQuery(sql_demmand);

                 return View();
        }

好了,这么简单的调用方法就把一个表的数据传递到了view了,在view上@viewdata["dt_supply"],行列,就可以取到值了

看到这里,一直纳闷在using ()里实例化了DBContext context = new DBContext(),因为构造函数里直接写了open,所以现在与数据库之间的联系是打开的,{}里就简单了,用了dbcontext的方法来返回一个dt,把dt赋值到viewdata里,return view();在另一个}后面相对于就把这个context给释放了,关掉了与数据库的连接,我是这样理解的,下面的游客大神么给点批评哦。接下来看using的使用。

1、用在命名空间里
   如:using System;  这个谁都知道,为了不用写类的全名(可以把System.Console  写成  Console)  
2、可以用来对一个类进行重命名,也是为了使用方便,如:  
    using System;  
    using hahaha     =     System.Console;   
    namespace  Console001  
    {  
    public class Class1  
    {  
    public static void Main()  
    {  
    hahaha.WriteLine("using 的第二种用法!");  
    }  
    }  
    }  
3,C#中的using除了作为命名空间指示符(using System),类型的别名指示符(using Dos=System.Console),还有资源管理的语句功能:
using (R r1 = new R ()) {
   r1.F();
}
在C#中被翻译为:
R r1 = new R();
try {
   r1.F();
}
finally {
   if (r1 != null) ((IDisposable)r1).Dispose();
}



ASP.NET MVC4中@model使用多个类型实例的方法

一般情况下,ASP.NET MVC的视图(View)中@model只使用一个类型实例。本文介绍了使用.NET Framework 4.0版本引入的Tuple类满足@model使用多个类型实例的方法,给...
  • hulihui
  • hulihui
  • 2015年09月03日 23:47
  • 19161

ASP_NET_MVC3_请求处理流程(1) MVC请求入口

  • a497785609
  • a497785609
  • 2015年11月29日 16:48
  • 2017

mvc入口文件的编写(一)

一、入口文件的编写 1)首先要创建一个入口文件 例如:index.PHP 2 ) 要确定入口文件将要做什么 ...
  • linlin_xia
  • linlin_xia
  • 2016年12月24日 10:39
  • 32368

C#入口程序解读

namespace CStest { static class Program { /// /// 应用程序的主入口点。 /// ...
  • jiangqin115
  • jiangqin115
  • 2015年05月11日 17:39
  • 1726

MVC项目之入口文件编写

mvc是php典型的架构模式,对MVC详情请了解http://blog.csdn.net/zch501157081/article/details/51967549。 MVC一般项目中为了安全性和方便...
  • zch501157081
  • zch501157081
  • 2016年07月25日 20:36
  • 847

从零开始写C# MVC框架之--- 主框架页

后台管理系统的布局和互联网系统的布局往往不同 后台管理系统的布局倾向于嵌iframe,结构是上、左、右,划分3块区域,左侧菜单、右侧iframe,来和互联网系统对比一下,比如微信公众号后台 1、本系统...
  • zhuyu19911016520
  • zhuyu19911016520
  • 2016年09月18日 10:59
  • 1976

MVC中部分视图调用方法总结

MVC视图加载方式包括Action、 RenderAction 、 Partial 、 RenderPartial。区别如下: 1、Action 、 RenderActi...
  • dingxingmei
  • dingxingmei
  • 2014年04月16日 11:03
  • 27674

从零开始写C# MVC框架之--- 开篇

从2011-7到2016-9月,4年多的工作中,做过3年.NET,1年多java,现在从事java,通过公司开发的框架,只需做很少的事情,就能快速进行开发,而我们往往就忽视了这些基本的东西,却一直在使...
  • zhuyu19911016520
  • zhuyu19911016520
  • 2016年09月11日 20:57
  • 6576

c#MVC using的用法

今天研究公司的mvc项目的时候,才发现using(){},一开始不知道干嘛的,搜索也搜不到相关资料,就找了好多的关键字搜索了一下,终于在一篇博客上找到了这个用法,给大家跟我一样接触编程不久的新手学习一...
  • qq_14840819
  • qq_14840819
  • 2015年07月08日 15:43
  • 512

【.Net码农】using的几种用法

http://www.cnblogs.com/windsails/archive/2004/09/12/42444.html https://msdn.microsoft.com/zh-cn/l...
  • CrackLibby
  • CrackLibby
  • 2015年10月09日 18:37
  • 314
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#MVC using的用法
举报原因:
原因补充:

(最多只允许输入30个字)