ADO.NET复习——自己编写SqlHelper类
今天复习了一次ADO.NET基础,整理一下自己的认为的重点:
编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法。现在大多数公司面试的时候,给你的面试题都会要你自己手写一个SqlHelper的类,这考的是自己的基本功,如果一个根基不牢固的开发人员,你写的代码肯定好不到哪里去。
下面是SqlHelper的演示代码,一定要熟练:
public static SqlHelper
{
//这里定义一个字符串变量,把数据库连接字符串赋值给它,也可以把连接字符串添加到配置文件,这样整个项目可以方便访问,这里为了清楚直接赋值到字符串变量
static string connStr = "Data Source=127.0.0.1\\SQL2012; Initial Catalog=Test;User ID=test;Password=test"; //执行查询语句并返回一个内存中的数据表
public DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters)
//因为不确定SQL语句的参数有几个,所以使用了长度可变参数,但必须放到后面
{ using (SqlConnection conn = new SqlConnection(connStr))//到数据库的连接
{
conn.Open();//打开数据库连接
using (SqlCommand cmd = conn.CreateCommand())//创建执行对象
{
cmd.CommandText = sql;//给cmd赋值SQL语句
cmd.Parameters.AddRange(parameters);//把SQL语句参数添加到cmd
DataSet dataset = new DataSet();//新建DataSet对象,用于保存查询结果
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//把执行cmd,更新数据结果到adapter对象
adapter.Fill(dataset);//adapter对象的Fill方法把结果添加到DataSet对象中
return dataset.Tables[];//返回一个查询结果的一个表
}
}
} //执行查询语句返回结果集合的第一行第一列
public Object ExecuteScalar(string sql,params SqlParameter[] parameters)
{
using(SqlConnection conn = new SqlConnection(connStr))//到数据库的连接
{
conn.Open();//打开数据库连接
using(SqlCommand cmd = conn.CreateCommand())//创建执行对象
{
cmd.CommandText=sql;//给cmd赋值SQL语句
cmd.Parameters.AddRange(parameters);//把SQL语句参数添加到cmd
return cmd.ExecuteScalar();//执行查询,返回查询结果的第一行的第一列
}
}
} //执行参数化SQL语句,返回受影响的行数
public int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
{ using (SqlConnection conn = new SqlConnection(connStr))//到数据库的连接
{
conn.Open();//打开数据库连接
using(SqlCommand cmd= conn.CreateCommand())//创建执行对象
{
cmd.CommandText= sql;//给cmd赋值SQL语句
cmd.Parameters.AddRange(parameters);//添加SQL语句中的参数
return cmd.ExecuteNonQuery();//执行数据库语句并返回受影响的行数
}
}
}
}
二、上面的SqlHelper类创建好了我们就可以在项目里面调用了,下面演示调用代码:
调用SqlHerlper类E的方法插入数据:
class Program
{
static void Main(string[] args)
{
//输入数据
Console.WriteLine("请输入要保存到数据库的名字:");
string name = Console.ReadLine();
Console.WriteLine("请输入年龄:");
int age = Console.ReadLine(); //调用ExecuteNonQuery(string sql,params SqlParameter[] parameters)函数,用于将获取的的数据插入到数据库
int rows = sqlhelper.ExecuteNonQuery("insert into T_Test(Name,Age) vaules(@Name,@Age)", new SqlParameter("@Name", name), new SqlParameter("@Age", age)); Console.WriteLine("成功插入{0}条数据", rows);//显示执行结果
Console.ReadKey();
} }
删除数据
class Program
{
static void Main(string[] args)
{
string name = "张三"; int result = sqlhelper.ExecuteNonQuery("delete from T_Test where Name=@Name", new SqlParameter("@Name", name));//删除名字叫张三的数据
Console.WriteLine("成功删除{0}数据.", result); Console.ReadKey();
}
}
查询数据
1. 创建一个winform窗体,放一个控件dataGridView

2.在窗体的载入事件中添加调用SqlHelper类的方法,并把结果赋值到dataGridView,代码如下:
private void Form1_Load(object sender, EventArgs e)
{
//在窗体的载入事件中添加调用SqlHelper类的方法,并把结果赋值到dataGridView
dataGridView1.DataSource = sqlhelper.ExecuteDataTable("select Name from T_Test");
}
3.运行窗体,显示的结果就是从数据库查询到的数据了

这是我今天复习过的觉得是的重点,虽然很菜啊,这是我第一次写带有代码的博客,自己终于走出这一步,自己以后也会多写博客,分享自己学习中的点点滴滴。
大神不要喷哈......
ADO.NET复习——自己编写SqlHelper类的更多相关文章
- 使用C#编写SqlHelper类
无聊的周末,学习.编码无力.想找点事干但又不知道干点什么,猛然发现自己学过的SqlHelper快忘记了.于是乎虎躯一震心想怎能如此堕落下去,立马打开电脑,双手摸上键盘.写下此文作为学习过程中的复习,并 ...
- c#中sqlhelper类的编写(二)
上一篇文章讲了简易版的SqlHelper类的编写,我们在这里就上一篇文章末尾提出的问题写出解决方案. sql语句注入攻击已经是众所周知的了.我们如何在C#中保护自己的数据库不被这样的方式攻击呢? 不用 ...
- c#中sqlhelper类的编写(一)
在.net平台的项目开发中,凡是用到数据库交互的,都有必要了解SqlHelper类的原理. 步骤一: 我就拿WPF项目开发作为例子.首先要新建一个App.config(应用程序配置文件).注意,在VS ...
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类
在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
- 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。
22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...
- 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...
- 实现如下类之间的继承关系,并编写Music类来测试这些类。
实现如下类之间的继承关系,并编写Music类来测试这些类. package com.hanqi.test; public class Instrument { //输出弹奏乐器 public void ...
- 最新的SqlHelper 类
最新的SqlHelper 类 摘自:http://www.cnblogs.com/sufei/archive/2010/01/14/1648026.html using System; using S ...
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...
随机推荐
- maven jetty
父项目: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons- ...
- java dump
注意,请不要被我误导,我没有看其他资料,这是我自己分析的,有些可能是不对的 "DestroyJavaVM" prio=6 tid=0x00316800 nid=0x448 wait ...
- find the most comfortable road
XX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流,每条SARS都对行驶在上面的Flycar限制了固定的Spee ...
- 【转】Android JNI编程—JNI基础
原文网址:http://www.jianshu.com/p/aba734d5b5cd 最近看到了很多关于热补的开源项目——Depoxed(阿里).AnFix(阿里).DynamicAPK(携程)等,它 ...
- Java---网络编程(1)
网络编程 相关基础概念 1.计算机网络与Internet 2.TCP/IP协议 3.Internet地址 - - -IP地址,形如xxx.xxx.xxx.xxx - - -域名系统.例如www.edu ...
- 动态规划——I 记忆化搜索
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- 手机app
手机app是什么? 由于iPhone.三星等智能手机的逐步流行和广泛普及,手机app这个词语开始频繁的出现在广大手机网民的视线中.也许你们还不知道什么是手机app,但你一定下载过手机app,你的手机里 ...
- 性能比较工具runstats
runstats能对做同一件事的两个不同方法进行比较,得出谁好一点.我们只需要提供两个不同方法,余下的事情都由runstats负责.runstats只是测量3个要素: 1. 耗用的时间. 2. 系统统 ...
- isEqual,isEqualTostring,==三者的区别
isEqual:首先判断两个字对象的类型是否相同,在判断内容是否相同,如果类型不同直接return no.如先判断是否都是 NSString,在判断string的内容. isEqualTostring ...
- VC6项目移植到VS2008的若干问题——好的代码,从我做起,从如今做起。
近期,有个项目开发,须要用到曾经项目的代码,只是曾经项目都是VC6下编译通过的,在VS2008下不一定编译通过,能编译通过也不一定能链接成功.以下总结一下我在一个VC6项目移植到VS2008中遇到的一 ...