C# SqlHelper应用开发学习

本文实例为大家分享了C# SqlHelper应用技巧,供大家参考,具体内容如下

使用App.config配置文件封装连接字符串,方便重复使用

--->添加App.conifg配置文件
--->Add : ConnectionString:
--->添加引用

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <startup>
 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
 </startup>
 <connectionStrings>
 <add name="conStr" connectionString="Data Source=.;Initial Catalog=;User ID=;Password="/>
 </connectionStrings>
</configuration>

封装一个SQLHelper类方便使用

using System.Configuration;
using System.Data;//DatSet..Table SqlDataAdapter
using System.Data.SqlClient;//SqlConnection Command DataReader
namespace Common
{
 public class SqlHelper
 {
 //连接字符串
 //1、添加引用 2、导入命名空间 为了使用ConfigurationManager
 private static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;

 //增删改查
 //查找数据 ExecuteScalar()返回首行首列 ExecuteReader() DataTable

 /// <summary>
 /// 返回DataTable
 /// </summary>
 /// <param name="sql">所用的sql语句</param>
 /// <param name="param">可变,可以传参也可以不传参数</param>
 /// <returns></returns>
 public static DataTable ExecuteDataTable(string sql, params SqlParameter[] param)
 {
 DataTable dt = new DataTable();
 using (SqlConnection con = new SqlConnection(conStr))
 {
 using (SqlDataAdapter adapter = new SqlDataAdapter(sql, con))
 {
  //添加参数
  adapter.SelectCommand.Parameters.AddRange(param);
  //1.打开链接,如果连接没有打开,则它给你打开;如果打开,就算了
  //2.去执行sql语句,读取数据库
  //3.sqlDataReader,把读取到的数据填充到内存表中
  adapter.Fill(dt);
 }
 }
 return dt;
 }

 /// <summary>
 /// 执行查询,返回首行首列
 /// </summary>
 /// <param name="sql"></param>
 /// <param name="param"></param>
 /// <returns></returns>
 public static object ExecuteScalar(string sql, params SqlParameter[] param)
 {
 object o = null;
 using (SqlConnection con = new SqlConnection(conStr))
 {
 using (SqlCommand cmd = new SqlCommand(sql, con))
 {
  cmd.Parameters.AddRange(param);
  con.Open();

  o = cmd.ExecuteScalar();
 }
 }
 return o;
 }

 /// <summary>
 /// 执行查询,返回SqlDataReader对象
 /// </summary>
 /// <param name="sql"></param>
 /// <param name="param"></param>
 /// <returns></returns>
 public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param)
 {
 SqlDataReader reader = null;
 using (SqlConnection con = new SqlConnection(conStr))
 {
 using (SqlCommand cmd = new SqlCommand(sql, con))
 {
  cmd.Parameters.AddRange(param);
  con.Open();

  reader = cmd.ExecuteReader();
 }
 }
 return reader;
 }

 /// <summary>
 /// 执行增删改,返回受影响的行数
 /// </summary>
 /// <param name="sql"></param>
 /// <param name="param"></param>
 /// <returns></returns>
 public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
 {
 int n = -1;
 using (SqlConnection con = new SqlConnection(conStr))
 {
 using (SqlCommand cmd = new SqlCommand(sql, con))
 {
  cmd.Parameters.AddRange(param);
  con.Open();
  n = cmd.ExecuteNonQuery();
 }
 }
 return n;
 }

 }
}

C#using三种使用方法: http://www.jb51.net/article/102855.htm

C#namespace: 是为了防止命名重复的 。
比如你在两个不同的命名空间中都可以有Student类。
此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。

C#中Sqlparamater的用法:http://www.jb51.net/article/101015.htm
下面这个是应用sqlHelper和ComboBox来展示 省市联动:

 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }

 private void Form1_Load(object sender, EventArgs e)
 {
 //在应用程序加载的时候 ,去数据库查找省的数据,给cboPro
 DataTable dt = SqlHelper.ExecuteDataTable("select * from promary");
 //将返回的DataTable作为cboPro的数据源
 //让cboPro显示proName这个字段的值,一般是显示给客户看的
 cboPro.DisplayMember = "proName";
 //让valueMemberID,绑定的是对应的值,绑定处理程序标识 给程序员看的。
 cboPro.ValueMember = "proID";
 cboPro.DataSource = dt;
 }

 private void cboPro_SelectedIndexChanged(object sender, EventArgs e)
 {
 //之前的写法
 // MessageBox.Show(cboPro.Text);//获得在cbo中选择文本
 //MessageBox.Show(cboPro.SelectedValue.ToString());//获得关联的数据

 //string sql = "select * from city where proID="+cboPro.SelectedValue.ToString();
 //带参数的sql语句
 string sql = "select * from city where proID=@proID";
 //准备一个sql参数
 SqlParameter p = new SqlParameter("@proID", cboPro.SelectedValue.ToString());
 //设置cboCity要显示的数据
 cboCity.DisplayMember = "cityName";
 //根据sql语句查询到的数据集
 cboCity.DataSource = SqlHelper.ExecuteDataTable(sql, p);
 }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#实现操作MySql数据层类MysqlHelper实例

    本文实例讲述了C#实现操作MySql数据层类MysqlHelper.分享给大家供大家参考.具体如下: using System; using System.Data; using System.Configuration; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; using MySql.Data; using MySql.Data.MySqlCli

  • c# SQLHelper(for winForm)实现代码

    SQLHelper.cs 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace HelloWinForm.DBUtility { class SQLHelper { #reg

  • C#实现较为实用的SQLhelper

    第一次写博客,想不到写什么好b( ̄▽ ̄)d ,考虑的半天决定从sqlhelper开始,sqlhelper对程序员来说就像helloworld一样,很简单却又很重要,helloworld代表着程序员萌新第一次写代码,而sqlhelper则是初次接触数据库(不知道这种说法对不对). 好了不废话了,下面直接上代码(无话可说了): public class SQLHelper { // 超时时间 private static int Timeout = 1000; // 数据库名称 public con

  • C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法

    本文实例讲述了C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法.分享给大家供大家参考.具体如下: 这个类不是我实现的,英文原文地址为http://www.eggheadcafe.com/articles/20050315.asp,这里修改了原文中分析sql语句参数的方法,将方法名修改为AttachParameters,将其修饰符修改为private,并直接传递command到这个方法,直接绑定参数到comand.修改后的代码如下 using System;

  • C#编写SqlHelper类

    无聊的周末,学习.编码无力.想找点事干但又不知道干点什么,猛然发现自己学过的SqlHelper快忘记了.于是乎虎躯一震心想怎能如此堕落下去,立马打开电脑,双手摸上键盘.写下此文作为学习过程中的复习,并分享出知识(顺便打发时间-^.^-). 下面开始正文 这里以控制台程序为案例.首先我们需要先配置一下连接字符串,我们需要在app.config文件中增加如下节点: <connectionStrings> <add name="Sql" connectionString=&

  • c#中SqlHelper封装SqlDataReader的方法

    本文实例讲述了c#中SqlHelper封装SqlDataReader的方法.分享给大家供大家参考.具体如下: /// <summary> /// 执行sql语句返回一个DataReader /// 当返回DataReader的时候,注意: /// 1.Connection不能关闭 /// 2.DataReader不能关闭 /// 3.command对象执行ExecuteReader()的时候需要传递一个参数CommandBehavior.CloseConnection /// </sum

  • C# SqlHelper应用开发学习

    本文实例为大家分享了C# SqlHelper应用技巧,供大家参考,具体内容如下 使用App.config配置文件封装连接字符串,方便重复使用 --->添加App.conifg配置文件 --->Add : ConnectionString: --->添加引用 <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supported

  • Android游戏开发学习②焰火绽放效果实现方法

    本文实例讲述了Android游戏开发学习②焰火绽放效果实现方法.分享给大家供大家参考.具体如下: 本节介绍在游戏开发中常用到的数学物理应用--粒子系统.粒子系统与上一节的小球有类似的地方,都是通过数学方法和物理公式模拟客观世界中的物体的运动轨迹.不同的是小球更强调个体运动,而焰火粒子等粒子系统更注重整体感觉. 一.焰火粒子效果 1.粒子对象类Particle类和粒子集合类ParticleSet类 每个粒子都为一个Particle类的对象,程序中产生的所有Particle对象都由一个Particl

  • Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式

    本文将讲解如何通过codecogs.com和Google.com提供的API接口来将LaTeX数学函数表达式转化为图片形式.具体思路如下: (1)通过EditText获取用户输入的LaTeX数学表达式,然后对表达式格式化使之便于网络传输. (2)将格式化之后的字符串,通过Http请求发送至codecogs.com或者Google.com. (3)获取网站返回的数据流,将其转化为图片,并显示在ImageView上. 具体过程为: 1.获取并格式化LaTeX数学表达式 首先,我们在这个网站输入LaT

  • Android开发学习之WallPaper设置壁纸详细介绍与实例

    今天和大家分享的是关于在Android中设置壁纸的方法,在Android中设置壁纸的方法有三种,分别是: 1.使用WallpaperManager的setResource(int ResourceID)方法 2.使用WallpaperManager的setBitmap(Bitmap bitmap)方法 3.重写ContextWrapper 类中提供的setWallpaper() 除此之外,我们还需要在应用程序中加入下列权限: <uses-permission android:name="a

  • Android游戏开发学习之引擎用法实例详解

    本文实例讲述了Android游戏开发学习之引擎用法.分享给大家供大家参考.具体如下: 汽车引擎是汽车的心脏,其决定了汽车的性能和稳定性,是人们在购车时相当关注的.而游戏中的物理引擎就如汽车的引擎一样,占据了非常重要的位置.一款好的物理引擎可以非常真实地模拟现实世界,使得游戏更加逼真,提供更好的娱乐体验. 一.JBox2D简介 JBox2D是开源物理引擎Box2D的Java版本,可以直接用于Android.由于JBox2D的图形渲染使用的是Processing库,因此在Android平台上使用JB

  • Android游戏开发学习①弹跳小球实现方法

    本文实例讲述了Android游戏开发学习①弹跳小球实现方法.分享给大家供大家参考.具体如下: 在学习了一点点Android之后,觉得有必要记录下来,于是就开了这个新坑,慢慢来填吧. 1.运动体Movable类 本例主要模拟了一组大小不一的球以一定的水平初速度从高处落下的运动轨迹.其中的小球为一个可移动物体Movable对象,该类中除了包含小球图片对象之外,还包括了如位置坐标.水平速度.垂直速度等一系列用于模拟小球运动的成员变量和一些方法. Movable类: package com.ball;

  • Java开发学习之Bean的生命周期详解

    目录 一.什么是生命周期 二.环境准备 三.生命周期设置 步骤1:添加初始化和销毁方法 步骤2:配置生命周期 步骤3:运行程序 四.close关闭容器 五.注册钩子关闭容器 六.bean生命周期总结 一.什么是生命周期 首先理解下什么是生命周期? 从创建到消亡的完整过程,例如人从出生到死亡的整个过程就是一个生命周期. bean生命周期是什么? bean对象从创建到销毁的整体过程. bean生命周期控制是什么? 在bean创建后到销毁前做一些事情. 二.环境准备 环境搭建: 创建一个Maven项目

  • Java开发学习之Bean的作用域和生命周期详解

    目录 一.Bean 的作用域 二.Spring 的执行流程 三.Bean 的生命周期 一.Bean 的作用域 在之前学习Java基础的时候,有接触到作用域这样的概念.一个变量并不一定在任何区域都是有效的,限定这个变量的可用性的代码范围就是该变量的作用域. 但是在这里 Bean 的作用域的概念和以前所认为的作用域有所不同. Bean 的作用域是指 Bean 在 Spring 整个框架中的某种行为模式. 接下来,将会举一个案例来讲讲什么是作用域,什么是行为模式 案例概要: 创建一个共有的 Bean

  • Android开发学习路线图

    行业背景: 今天,涉及通信产业链中的每个环节,都有Android的身影,Android是第一款完全完整打通了整个通信产业链中的操作系统,手机方案商.集成商.运营商.内容提供商.用户,都在玩Android,都惊讶于Android的爆发式增长速度,Android现在每天有超过50万台新的Android设备启用.        随着Android平台的扩张,引发了Android人才荒,未来人才需求缺口将达百万.但符合条件的Android工程师屈指可数,企业招聘难度可想而知.据新京报等媒体报道Andro

  • Android开发学习路线的七大阶段

    看了专业的培训机构的课程大纲,才知道,自己学习android的路途才刚刚开始!特此整理分享一下,希望能帮到那些准备学习android开发,或者正在学习android开发,但是又没有找到明确路线的童鞋们!(PS:特此声明,这篇文章不是给培训机构做广告哈,本人也是在自学android开发!!) 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收:

随机推荐