今天复习了一次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类的更多相关文章

  1. 使用C#编写SqlHelper类

    无聊的周末,学习.编码无力.想找点事干但又不知道干点什么,猛然发现自己学过的SqlHelper快忘记了.于是乎虎躯一震心想怎能如此堕落下去,立马打开电脑,双手摸上键盘.写下此文作为学习过程中的复习,并 ...

  2. c#中sqlhelper类的编写(二)

    上一篇文章讲了简易版的SqlHelper类的编写,我们在这里就上一篇文章末尾提出的问题写出解决方案. sql语句注入攻击已经是众所周知的了.我们如何在C#中保护自己的数据库不被这样的方式攻击呢? 不用 ...

  3. c#中sqlhelper类的编写(一)

    在.net平台的项目开发中,凡是用到数据库交互的,都有必要了解SqlHelper类的原理. 步骤一: 我就拿WPF项目开发作为例子.首先要新建一个App.config(应用程序配置文件).注意,在VS ...

  4. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

  5. 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。

    22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...

  6. 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 ...

  7. 实现如下类之间的继承关系,并编写Music类来测试这些类。

    实现如下类之间的继承关系,并编写Music类来测试这些类. package com.hanqi.test; public class Instrument { //输出弹奏乐器 public void ...

  8. 最新的SqlHelper 类

    最新的SqlHelper 类 摘自:http://www.cnblogs.com/sufei/archive/2010/01/14/1648026.html using System; using S ...

  9. 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释

    在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...

随机推荐

  1. QS Network

    zoj1586:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1586 题目大意:最小生成树,不只算两点之间的费用,还要算点 ...

  2. codeforces B. Prison Transfer

    题意:输入n,t,c,再输入n个数,然后问有多少个连续区间内的最大值小于等于t; #include <cstdio> #include <cstring> #include & ...

  3. 使用 Spring Data JPA 简化 JPA 开发

    从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ...

  4. Linux企业级开发技术(7)——libevent企业级开发之锁和线程

    编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的. libevent的结构体在多线程下通常有三种工作方式: 1.某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的. 2 ...

  5. 最小生成树——[HAOI2006]聪明的猴子

    题目:[HAOI2006]聪明的猴子 描述: [题目描述] 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着, 猴子不会游泳,但跳 ...

  6. Storm-1.0.1+ZooKeeper-3.4.8+Netty-4.1.3 HA集群安装

    Storm-1.0.1+ZooKeeper-3.4.8+Netty-4.1.3 HA集群安装 下载Storm-1.0.1 http://mirrors.tuna.tsinghua.edu.cn/apa ...

  7. 在eclipse下编译hadoop2.0源码

    Hadoop是一个分布式系统基础架构,由apache基金会维护并更新.官网地址: http://hadoop.apache.org/ Hadoop项目主要包括以下4个模块: Hadoop Common ...

  8. javascript 函数 方法

    函数 1.函数的定义 (1)function 函数名(x){ 函数执行体; } (2)var 函数名=function(x){ 函数执行体; }; 这种方法说明,在javascript中,函数就是一种 ...

  9. PhoneGap应用开发的那些坑爹事儿

    子曾经曰过:如果你恨一个人,让他去开发PhoneGap应用:如果你爱一个人,让他去开发PhoneGap应用. 去年这个时候我很烦恼,因为我觉得我OUT了. 起因是我买了一台Android系统的手机.当 ...

  10. MySQL 通配符学习小结

    MySQL 通配符 SQL的模式匹配同意你使用"_"匹配不论什么单个字符,而"%"匹配随意数目字符(包含零个字符).在 MySQL中,SQL的模式缺省是忽略大写 ...