一、打开和关闭数据库

     

你需要知道这么几个信息:你要连接的是哪台机器(机器名:SPXY-WYH);你要采取什么身份验证方式(Window身份验证方式,还是SQL Server身份验证方式);如果你是个负责任的人,你还需要知道你要连接哪个数据库(NetShop)。好了,我可以用字符串的方式告诉你吗?

1、连接字符串

string connectionString = "Server=SPXY-WYH;Database=NetShop;Trusted_Connection=SSPI";

string connectionString = "Server=.SPXY-WYH;Database=NetShop;User Id=abc;Password=123";

你应该明白,我两个连接字符串的意思吧?

第一个,是让你用Windows身份验证方式打开数据库,机器名是SPXY-WYH,要连接的数据库是NetShop;

第二个,是让你用SQL Server身份验证方式打开数据库,机器名是SPXY-WYH,要连接的数据库是NetShop。你知道的,用这种方式打开数据库,是需要知道用户名和密码的.....

2、数据库的打开与关闭

那,我们再看看,类SqlConnection是怎么打开数据库的:

SqlConnection conn = new SqlConnection();

conn.ConnectionString = "Server=SPXY-WYH;Database=NetShop;Trusted_Connection=SSPI";

conn.Open();

conn.Close();

我们把刚才告诉你的连接字符串,告诉给了一个叫SqlConnection的人,然后,它就可以很乖地听我们的指令,随时打开、关闭数据库了。

什么,你说不对??“你明明告诉的是一个叫conn的类的实例,不是SqlConnection类嘛......”

是的,不错,你说得对,我告诉的是conn。可是,你知道conn是个什么人吗?他是一个克隆人。

你可能认识一个人,他非常厉害,甚至能呼风换雨,但是,他不一定会听你的,随意让你使唤;而我的类就不一样了,我发现了SqlConnection很有用,很有价值,具有打开和关闭一个数据库的能力,我就克隆了一个,这样,他就会完全属于我,非常非常乖地听我的话了,我让他什么时候打开数据库,他就什么时候打开;我让他什么时候关闭,他也会老老实实地去关闭......

我们必须重温一下,变量是什么?例如int i=1;这是什么意思?SqlConnection conn = new SqlConnection();这又是什么意思?

计算机不是数学,此变量,非彼变量也。谭浩强在《C语言程序设计》一书中明确指出,“变量是储存单元”,随着变量,特别是自定义变量越来越复杂,我更喜欢说,“变量,是一个存储区域”。int i=1,事实上就是,我们开辟一个存储区域,把用32位0、1代码表示的整数1,放到这个存储区域中,然后,随时可以通过它的名字i或者它的地址&访问它;而SqlConnection conn =new SqlConnection();则是开辟一个存储区域,把类SqlConnection封装的用一堆0、1代码表示的变量、函数统统都放到这个存储区域中,然后,我们随时都可以通过conn这个名字访问它,读取或设置它的属性,也就是它里面的变量值、调用它里面的方法函数....

一直以来,大家都喜欢用“实例化”来描述这个过程,而我,则更喜欢说,这是声明一个变量,一个其实并不算怎么特殊的复合型变量,一个类变量,也就是比结构体复杂一点而已,除了里面有变量,还会有函数。

如果我说,类就是一个人,你不觉得,这其实就是在克隆一个人吗?

你不是克隆人,所以,你有权利不听我的话,你可以说我今天不心情不好,不喜欢做一个打开数据库这么一个无聊的操作,更不喜欢那么费事儿地,在打开数据库的同时,还帮我指定要操作的数据库,你还有可能心不在焉地帮我犯两个操作小错误,从而不能很好地完成这个操作。

我的克隆人不会让我失望的,他是我的,他完完全全是我的,他非常非常听我的话,也非常非常地敬业,每次打开数据库之后,还能不厌其烦地,帮我把数据库关闭,因为,这是一个必须的良好习惯。

二、执行查询命令并显示查询结果

打开数据库,总要做点事,我们来查询点什么吧,我们换一个人,找个叫SqlCommand的人做这件事儿怎么样?

按照你在查询分析器上执行一个查询命令的需要,我需要告诉她这么三样东西:

1、针对哪个机器上的哪个数据库,简单一点,就直接告诉她是刚才克隆人conn打开的那个连接吧;

2、是什么类型的命令,是存储过程,还是直接用文本形式的SQL语句,还是...;

3、如果是用存储过程查,我需要告诉她存储过程名是什么,如果是SQL语句查,我需要告诉她SQL语句的内容。

你看我这样告诉她行不行?

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

cmd.CommandType = CommandType.Text;

cmd.CommandText = cmdText;

看出来了吧,这个她,也是我克隆出来的,我命令她给我执行一个可以获得一个表格数据的命令,把查到的表格数据交给另一个叫“rdr”的克隆人来管理,她肯定不会有意见的:

SqlDataReader rdr = cmd.ExecuteReader();

今天就到这里吧,SQL Server.NET数据提供程序,也就是System.Data.SqlClient命名空间里的4个核心的类,我们就这样简简单单、随随便便地熟悉了2个,认识了1个,你还想说,编程这东西,很难吗?如果我顺便告诉你一声,我们即将打造的肯德基订餐系统,根本就不使用SqlDataAdapter,更不使用这家伙一般都要关联使用的DataSet,你不要惊讶哈,这么一会儿功夫,就这么一会儿功夫哈......

类就是一个人,一个可以做某类事儿的人,命令一个类做件什么事,就象命令一个人做件事一样,不管你信不信,我反正是信了......

三、以类为单位的编程思想

ASP.NET(C#),就是这样,以类为单位,使用一个一个已经具有相当功能的类来构建项目、系统的。不仅C#是这样的,VB、VC、Java、Delphi等等,高级语言,都是这样以类为单位编程的。做为他们的主人,你要做的,就是从零开始,象伯乐一样,今天发现一个类,明天认识一个类,后天又熟悉一个类。象韩信用兵一样,多多益善,相信你也会从奴隶到将军,威风八面的。

版权所有©2012,WestGarden.欢迎转载,转载请注明出处.更多文章请参阅博客http://blog.csdn.net/yousuosi/

转载于:https://www.cnblogs.com/java20130723/archive/2012/05/22/3211632.html

至于你信不信,我反正是信了——以类为单位的编程思想相关推荐

  1. 2011年度最佳代码“不管你们信不信,我反正信了”

    最近有段十分流行的代码,是从江湖传闻"身怀八蛋"的铁道部发言人王勇平同志的一句名言:"不管你们信不信,我反正信了--这是生命的奇迹--它就是发生了"所引申出来的 ...

  2. 年度最佳代码“不管你们信不信,反正我信了”

    最近有段十分流行的代码,是从江湖传闻"身怀八蛋"的铁道部发言人王勇平同志的一句名言:"不管你们信不信,反正我信了--这是生命的奇迹--它就是发生了"所引申出来的 ...

  3. 不管你们信不信,反正我信了

    谈谈年度最佳代码"不管你们信不信,反正我信了" 2011-08-05 15:15 by 老赵, 7916 visits 最近有段十分流行的代码,是从江湖传闻"身怀八蛋&q ...

  4. 不管你信不信,反正我信了。是这样实现的……

    生活中的东西,都是可以用程序来模拟实现的.     今天code陈问我这样一个问题:             用程序表示"你回来了,你回来了我很高兴!"这句话.           ...

  5. 那些《西游记》中你不知道的野史,信不信由你

    一提到<西游记>大家肯定会想到86版<西游记>,已经成为了各大电视台的暑假热播神剧.其实<西游记>很多人从小到大看了无数遍了,但仍然有很多不为人知的秘密,而且西游记 ...

  6. python表情包多样化聊天室_Python | 信不信我分分钟批量做你大堆的表情包?

    作者 | 依然很拉风 作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符 ...

  7. 项目说事——信不信反正我信了(合作开发总结之文档)

    信不信反正我信了.这句话让我很无耐啊,是啊经历过合作开发的程序猿应该都有着同感--无耐.项目开发应该是件高兴的事,挣钱嘛.工作经验啊谁不高兴,可是问题又来了,以前只是个人开发项目啊,文档好歹写写,图好 ...

  8. 不管你信不信,这就是996的真实内幕!

    7月,越来越热的天气,似乎让每一个码农内心越来越烦躁,因为996的加班让他们无法享受夏日凉凉的夜啤.更别提落日的激动(落日意味着下班啦!) 一直很想深度剖析一下国内互联网996盛行的原因,总是借口忙. ...

  9. 我不管你们信不信,反正我是信了!

    我不管你们信不信,反正我是信了,LAMP兄弟连是个正确的选择! 来到北京已经快一个月了,在兄弟连学习也快一个月了,自信心爆涨.LAMP兄弟连这是一个正确的选择,我不管你们信不信,反正我是信了. 在今年 ...

最新文章

  1. 直播预告|灵动MM32 MCU助力全国大学生智能汽车竞赛——基础培训第二讲
  2. 【OpenCV3】cv::Mat中最值和均值的求解
  3. 微信小程序-京东购物系列一
  4. c语言如何输出无限小数,printf的格式控制(C语言)
  5. 如何打开Cookies网页
  6. Windows 2008 R2 SP1部署Lync2010企业版(一)
  7. vue的模糊查询和下拉菜单修改信息------------学习记录
  8. 单职业传奇私脱机辅助制作视频教程
  9. 自动生成员工号c语言,C语言课程设计级.doc
  10. 如何让技术大佬失去理智
  11. 使地方坐标系BIM模型与CAD严格在LSV内对准
  12. 维持两人爱情关系需要慢慢做的事情
  13. Drozer – Android APP安全评估工具(附测试案例)
  14. javase_20(Awt初步认识)
  15. MySQL中操作关系型数据库 SQL
  16. 华侨大学计算机科学术 张应晖,计算机科学与技术学科网络安全与优化研究所学术报告(田晖 华侨大学)...
  17. HashMap是什么
  18. Auto CAD:CAD软件之底边菜单栏(捕捉模式、极轴状态、对象捕捉、允许禁止动态UCS、动态输入、显示隐藏线宽、快速查看图形、选择循环命令、切换空间按钮)简介之详细攻略
  19. Ubuntu18 安装ROS-Melodic及常见配置
  20. 百度地图api(javascript)只显示某一行政区域的地图,其他周边地区的都不显示

热门文章

  1. vue-cli 项目配置路径别名
  2. 华为服务器提示错误信息,服务器错误日志
  3. python中的列表是采用链式结构实现的_Python数据结构与算法之列表(链表,linked list)简单实现...
  4. android ontoch事件无反应_一切从android的handler说起(三)
  5. 提示用户输入一个高考_2020年湖南省高考成绩查询方式及录取动态查询方式
  6. 计算机网络-思维导图(6)应用层
  7. kafka+zookeeper安装配置
  8. 太强了!这个 Jupyter notebook 离线工具可以用一辈子!
  9. 这几本书在豆瓣 8 分以上,今天中秋节包邮送!
  10. 机器学习基础-最近邻规则分类 KNN (K-Nearest Neighbor)-11