1.如何使用SqlHelper 类
通过引用数据访问应用程序块程序集并导入 Microsoft.ApplicationBlocks.Data 命名空间,您可以编写使用任何一种 SqlHelper 类方法的代码,如下面的代码示例所示:
[Visual Basic] Imports Microsoft.ApplicationBlocks.Data [C#] using Microsoft.ApplicationBlocks.Data;
导入该命名空间后,您可以调用任何 Execute* 方法,如下面的代码示例所示:
2.如何在sqlhelper中写调用这个存储过程的代码呢
set @ArticleId=@@IDENTITY 。这样这个存储过程才能有输出参数。下面看调用:
假设你sqlHelper 的连接啥都有了,这里不罗嗦了。
string sql ="Articles_InsertArticle";
SqlParameter[] sp = new SqlParameter[16];
sp[0] = new SqlParameter("@AddDate", SqlDbType.DateTime);
sp[0].Value = DateTime.Now;
sp[1] = new SqlParameter("@AddBy", SqlDbType.NVarChar);
sp[1].Value = "参数传入值啥的";
sp[15] = new SqlParameter("@ArticleId", SqlDbType.Int);
sp[15].Direction = ParameterDirection.Output;//默认不设都是输入参数,输出参数或者返回值必须设下
SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, sql, sp);//这个方法是把SqlParameter数组都 add 到cmd.Parameters里,不知你的sqlHelp有没这个方法。有就直接用,没有自己写个。
3.C#编程与数据库s连接,其中有表vitalStatistics,怎么写SQLHELPER
建一个SQLHelper的静态类写方法public DataSet Query(string query){ SqlConnection conn = new SqlConnection(string connentionString); SqlDataAdapter adapter = new SqlDataAdapter(query,conn); DataSet ds = new DataSet(); adapter.Fill(ds); return ds;}。
4..net数据访问层除了要写sqlhelper还要写什么
dotnet 在语言上和JAVA是没有什么区别的。
可能在开发的具体做法上有些不一样,JAVA的开发往往会比dotNet运用更多的标准,这不是语言决定的,主要是受开发人员的影响。
dotNet里很多人会写一些 数据访问的一些包装类像你所说的sqlhelper 而在java中却不需要,因为它本身就定义了一套标准的接口(dotNet 中不同的接连接方式 没有抽取一套通用的接口),在java 中开发人员一般都会为实体类写DAO 甚至会再加一层封装实现manager (有些地方叫service)这样不更清楚的分层隔离了。而dotNet的开发者往往会在业务层上使用sqlhelper 这样分层就不清晰了,这样没有对和不对之分,一般java做的项目比较大,结构清晰便于团体开发维护等,而dotNet的项目一般较小很多是个人完成的所以有些出入是正常的
——————————————————————————————————
回复: kid83
1、dotNet有接口访问层 ,我查了MSDN dotNet在System.Data.Common 命名空间下的确有一套接口,请我恕我的无知。可惜用的人不多,你可以看看网上的那些代码,用这套接口的有多少,这正印正了“dotnet 在语言上和JAVA是没有什么区别的。可能在开发的具体做法上有些不一样,JAVA的开发往往会比dotNet运用更多的标准,这不是语言决定的,主要是受开发人员的影响。”这句话。
2、你说“我做过一个dotnet得项目2G多”,项目的大小是这样衡量的?你的这2G是电影吧?光程序1MB 就多少行代码?我写过一个ORM框架(C#) 5000多行代码,译成DLL才100K多点。好就算你的项目有1.5G的电影,那么500M的代码你一个人得敲多久?
3、你说“java是开源,结果到你们那, 两个像sqlhelper的东西都没有”:在JAVA开源的框架比sqlhelper强大(功能和灵活性)Hibernate ,EJB的JPA,iBatis 等这些持久化框架哪个不比你说的SqlHelper强大?哪些是收费的?听过NHibernet ,NSpring 没?从JAVA搬过来的!就连dotNet本身也是从JAVA抄过来的。当然不是说dotNet不好,dotNet在一些地方和JAVA相比的确做一了些改善。
__________________________________________________
回复楼主:
按分层的原则,业务层上不应出现操作SQL等数据层的操作的。
业务层只会调用一类对象的增删改查 排序等方法,而对象的增删改查的实现这是数据层的东西。
如果在业务逻辑层中有SQL的操作,那么业务逻辑层对数据层就有依赖了,层次会不分明的。
说白了,SqlHelper 提供了一些数据访问的一些常用方法的包装,方便数据层的开发。
_________________________________________________________
回复楼主:
严格来说HQL不应出现在业务逻辑层的,
而为什么现实中挺多项目这样做呢?
首先为什么要分层,分层使得软件结构清晰,这样一来方便团体合作,二来方便软件的维护和再开发(书是怎么写的我不知道,这只是我的个人见解)。
并不是一定要分层的。
有时做不小项目也分层会很烦人的--写接口再去实现这样代码会比原来多的。
再一个HQL 它本身不区分数据库的,项目已选定用Hibernate不打算换成别的实现了这样写也可以的,反正换数据库实现已经交给Hibernate了,这也只不过是改一下配置文件的问题
5.新手怎么增删改查sqlhelper
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration;namespace DAL{ public class SQLHelper { private SqlConnection conn =null; private SqlCommand cmd = null; private SqlDataReader sdr = null; public SQLHelper() { string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; conn = new SqlConnection(connStr); } private SqlConnection GetConn() { if (conn.State==ConnectionState.Closed) { conn.Open(); } return conn; } ///
转载请注明出处育才学习网 » 怎么写sqlhelper