随笔分类 -  C#基础

摘要:在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,在本篇中周公还是在上一篇的基础上再做稍微深入一点的介绍,在本篇中主要讲述如何获取数据库常见对象信息,并且如何利用SMO来进行一些日常操作:如创建Login,创建数据库、备份数据库和还原数据库。执行上面这些操作的SQL语句也许我们已经写过,下面我们来看看利用SMO来操作的代码将如何写。 阅读全文
posted @ 2012-05-23 02:18 周金桥 阅读(787) 评论(2) 推荐(0) 编辑
摘要:最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见,有也是一些零星的应用,特别是SSIS部分国内外的文章大都是讲解如何拖拽控件的,在开发过程中周公除了参阅SQL Server帮助文档、MSDN及StackOverFlow等网站,这些网站基本上都是英文的,为了便于一些英文不好的开发者学习,周公在自己的理解上加以整理成系列,不到之处请大家谅解。 阅读全文
posted @ 2012-05-17 02:01 周金桥 阅读(1821) 评论(2) 推荐(0) 编辑
摘要:很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程、触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR,所以一直没有尝试。最近因为项目的原因,在这方面做了一个调研,现在在这里分享一下心得。 阅读全文
posted @ 2012-05-10 01:30 周金桥 阅读(563) 评论(0) 推荐(0) 编辑
摘要:最近在做一些数据库管理维护方面的开发,需要了解一些有关数据库的管理信息,比如本机上运行了哪些数据库服务器实例,局域网内运行了哪些数据库服务器实例及每个数据库服务器下有多少数据库,每个数据库的物理文件大小及保存位置等等。结合了网上的一些资料和本人的多次实践,总结写出本篇。在这里要感谢一篇文章《sql server系统表详细说明》。首先是一些与系统表记录对应的实体类(注意代码中ColumnNameAttribute类是来自于《用C#打造自己的通用数据访问类库(续)》中的类,在周公处它们位于同一namespace下): using System; using System.Collections.. 阅读全文
posted @ 2012-04-19 00:16 周金桥 阅读(640) 评论(0) 推荐(1) 编辑
摘要:说明:此篇文章是给那些和我一样仍在使用ADO.NET访问数据库的.NET开发人员写的,因为某些原因,比如还在使用.NET3.0以下版本开发.NET应用或者所使用的数据库对ORM支持不是很好,或者是对ORM的性能有所怀疑(其实在访问量不是很大的情况下没有必要过分追求性能的极限)等等,这部分人仍在使用传统的ADO.NET来访问数据库,他们或手写或采用代码生成工具来生成实体类和增删改查的SQL语句,在将DataTable或者DataReader转换成对应的实体类的时候仍需要一行行写代码,本类就是为了解决这个问题的,可以用几个类来实现方便快捷的转换。本类库在SQL Server/MySQL/SQLit 阅读全文
posted @ 2012-04-12 22:00 周金桥 阅读(1143) 评论(0) 推荐(0) 编辑
摘要:说明在之前周公曾写过针对不同数据库的数据库访问通用类,如针对SQLite的、针对Access的、针对Oracle的、针对SQL Server的。总结了这些通用类的通用方法,其实无非就是针对不同类型的数据库创建Connection、Command、DataAdapter及DataReader,然后对外提供范围ExecuteTable(),ExecuteDataReader、ExecuteScalar()及ExecuteNonQuery()方法,有了这四个方法我们就可以完成针对数据库的所有操作了。在之前周公就曾经想过将这些数据库访问通用类提炼出来,写成一个针对各种数据库通用的数据库通用类,按照一般 阅读全文
posted @ 2011-07-25 00:52 周金桥 阅读(599) 评论(0) 推荐(1) 编辑
摘要:说明尽管随着NoSQL的普及,数据库访问的性能已经非常关注的重点了(可以通过架构来解决这个瓶颈),所以有越来越多的项目使用了ORM来访问和操作数据库,在周公的博客上有一个系列的文章来比较ADO.NET和一些常见的ORM,实际上现在周公业余研究的一个项目中,周公也使用了MyBatisNet(由iBatisNet升级而来)。不过仍然有使用ADO.NET的场合,如果使用ADO.NET则免不了要写大量的将DataTable或者DataReader转换成对应的实体类的代码,经过了大约24小时的编码和测试(非连续的,累计的),周公尝试写了一个辅助工具,它可以将DataTable或者DataReader中的 阅读全文
posted @ 2011-07-17 22:23 周金桥 阅读(578) 评论(0) 推荐(0) 编辑
摘要:在以前的项目中周公曾有解析HTML的情况,当时是采用正则表达式一步步将无关的HTML注释及JS代码部分删除掉,然后再用正则表达式找出需要提取的部分,可以说使用正则表达式来做是一个比较繁琐的过程,特别是对于正则表达式不是很熟悉或者要处理的HTML很复杂的情况下。前一阵子周公还是通过这个办法将http://wz.csdn.net/zhoufoxcn上保存的网址导入到http://cang.baidu.com,本来还想将周公博客上的文章好好整理一下,但是考虑到使用正则真的是很繁琐也很麻烦,所以就一直没有动手。直到前两天在网上发现了一个.NET下的HTML解析类库HtmlAgilityPack。Htm 阅读全文
posted @ 2011-06-24 02:07 周金桥 阅读(872) 评论(1) 推荐(0) 编辑
摘要:这个需求来自于我最近练手的一个项目,在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放,如果全部采用手工操作工作量大而且繁琐,因此周公决定利用C#来实现。在很多地方都需要验证用户身份才可以进行下一步操作,这就免不了POST请求来登录,在实际过程中发现有些网站登录是HTTPS形式的,在解决过程中遇到了一些小问题,现在跟大家分享。通用辅助类下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse对象,有了返回的HttpWebResponse实 阅读全文
posted @ 2011-05-08 22:51 周金桥 阅读(678) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章《使用Memcached提高.NET应用程序的性能》中周公讲述如何在.NET中使用Memcached来提高.NET应用程序的性能。在实际的使用中有可能出现Memcached因为某些不可预知的原因挂掉,一旦出现这样的情况,就会再次给数据库增加巨大的压力,因此需要监控Memcached的运行情况。周公在网上找过,在网上有PHP版的Memcached监控工具,打开那个PHP页面就可以看到各个Memcached的运行情况,一旦不能获取到这些数据,说明Memcached不可访问,不可访问的原因可能是因为网络故障或者Memcached挂掉了,虽然原因不同,但是结果是一样的。参照了Enyim M 阅读全文
posted @ 2011-03-29 22:13 周金桥 阅读(314) 评论(0) 推荐(0) 编辑
摘要:我们知道在.NET中我们有多种对象序列化的方式,如XML方式序列化、Binary序列化,其中XML序列化是一种比较通用的在各语言之间传递数据的方式。除了这两种序列化方式之外,在.NET中还可以使用JSON序列化。JSON(JavaScript Object Notation)是一种轻量级轻量级的数据交换格式,并且它独立于编程语言,与XML序列化相比,JSON序列化后产生的数据一般要比XML序列化后数据体积小,所以在Facebook等知名网站中都采用了JSON作为数据交换方式。在.NET中有三种常用的JSON序列化的类,分别是System.Web.Script.Serialization.Jav 阅读全文
posted @ 2011-03-16 21:04 周金桥 阅读(412) 评论(0) 推荐(0) 编辑
摘要:有经验的开发人员都知道在开发.NET应用时可以利用配置文件保存一些常用并且有可能变化的信息,例如日志文件的保存路径、数据库连接信息等等,这样即使生产环境中的参数信息与开发环境不一致也只需要更改配置文件而不用改动源代码再重新编译,极其方便。并且我们一般还约定,在<appSettings>节点保存应用程序的配置信息,在<connectionStrings>中保存数据库连接字符串信息(详见本博客《asp.net夜话之十一:web.config详解》)。上面的这些方法和约定足以让我们在大部分开发中获得方便,但是在有些情况下有些配置信息可以按组分类存放,如果采用上面的方法不仅不直 阅读全文
posted @ 2011-03-09 08:59 周金桥 阅读(314) 评论(0) 推荐(0) 编辑
摘要:说明:这是一个系列文章,在前面的四篇当中周公分别讲述了利用ADO.NET、NHibernate、Linq to SQL及EntityFramework来实现CRUD功能(C:Create/R:Read/U:Update/D:Delete),在这里再讲述另一种框架,那就是MyBatisNet。MyBatisNet源自于iBatisNet,而iBatisNet又是受了Java平台上的iBatis的影响。iBatis及iBatis.NET都是利用XML描述来执行存储过程或者SQL语句。与其它ORM框架相比,简单易学是iBatis及iBatis.NET的最大特点,简单易学并不意味着它们功能简单,实际上 阅读全文
posted @ 2010-12-19 21:24 周金桥 阅读(522) 评论(0) 推荐(0) 编辑
摘要:说明自从上次在2008年在博客上发表过有关log4net的用法介绍文章之后(网址:http://blog.csdn.net/zhoufoxcn/archive/2008/03/26/2220533.aspx),有不少朋友在博文下留言询问一些细节,现在就一些比较普遍的问题做一些稍微深入的解答,希望大家满意。首先说明一点的是,log4net解决的问题是提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLi 阅读全文
posted @ 2010-11-23 10:35 周金桥 阅读(11422) 评论(2) 推荐(3) 编辑
摘要:VS2010已经推出有一段时间了,相比VS2008它确实有很多先进之处,这点想必很多已经开始使用VS2010的人已经感受到了,在这里要介绍的是VS2010的扩展管理器。打开VS2010之后,我们可以在“工具”菜单下找到“扩展管理器”,如下:打开“扩展管理器”之后,界面如下:这个时候我们看到的是一个空的界面,这是很正常的,因为我们没有安装任何扩展。如果你当前的计算机可以连接到网络的话,点击“联机库”就可以看到联机的扩展了,下图是周公连接点击“链接库”的情形:从上图可以看到VS2010提供的联机扩展分为三个大类别,分别是工具、控制和模板,当然每一个类别下面又有很多类别。在连接扩展管理器界面的中间就 阅读全文
posted @ 2010-11-09 22:19 周金桥 阅读(769) 评论(0) 推荐(0) 编辑
摘要:说明:写作本文的出发点是最近和一个有3年开发经验的.NET开发人员聊天,他跟我说经常没有思路,在实际开发中我也见过一个具有4、5年开发经验的开发人员几乎没有灵活变通的能力,所以打算写一系列文章,在这个系列文章中我会主要讲解解题的思路,而不是讲述什么新技术新特性,借这个系列文章为初中级开发者了解遇到问题别人是如何思考和解决的。当然,如果你的思路比本文提到的更好,欢迎指出来,同时如果你对本系列文章有更好的建议或者有日常中的一些典型问题,请给我联系,我们共同探讨。目前我暂时能想到的有不重复随机数产生问题、字符串与数值转换的问题、特殊的数据库锁问题、访客来路追踪问题、在线用户统计问题、统计用户访问页面 阅读全文
posted @ 2010-08-19 22:32 周金桥 阅读(397) 评论(0) 推荐(0) 编辑
摘要:可能经过很多博客的介绍,大家都知道代码段的使用,使用代码段可以很方便地生成一些常用的代码格式,确实对我们开发很方便。在团队开发中或者在某些情况下我们经常可能还会希望使用Visual Studio生成的代码自动带有一些信息,比如代码文件的创建时间、代码的说明及对命名空间的引用等等,实际上这个功能经周公证实在Visual Studio2005以上版本中就支持了。下面以周公的本本的具体情况为例来加以说明,在周公的DELL 1425(之所以提这款笔记本是提醒大家不要购买垃圾DELL)上系统是安装在C盘,在系统盘下同时安装了Visual Studio 2005和Visual Studio 2008两套V 阅读全文
posted @ 2010-06-21 09:10 周金桥 阅读(188) 评论(0) 推荐(0) 编辑
摘要:说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据。在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第三方的ORM持怀疑态度,你还可以使用来自微软的实现、根正苗红的Linq或者EntityFramework。大部分从早期就开始使用.NET开发的程序员可能对ADO.NET有种迷恋,使 阅读全文
posted @ 2010-05-10 08:57 周金桥 阅读(312) 评论(0) 推荐(0) 编辑
摘要:说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据。在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第三方的ORM持怀疑态度,你还可以使用来自微软的实现、根正苗红的Linq或者EntityFramework。大部分从早期就开始使用.NET开发的程序员可能对ADO.NET有种迷恋,使 阅读全文
posted @ 2010-04-11 22:01 周金桥 阅读(309) 评论(0) 推荐(0) 编辑
摘要:说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据。在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第三方的ORM持怀疑态度,你还可以使用来自微软的实现、根正苗红的Linq或者EntityFramework。大部分从早期就开始使用.NET开发的程序员可能对ADO.NET有种迷恋,使 阅读全文
posted @ 2010-03-21 21:55 周金桥 阅读(247) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示