博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#开发学习——SqlHelper的应用
阅读量:5987 次
发布时间:2019-06-20

本文共 5012 字,大约阅读时间需要 16 分钟。

 

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

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

封装一个SQLHelper类方便使用

1 using System.Configuration;  2 using System.Data;//DatSet..Table SqlDataAdapter  3 using System.Data.SqlClient;//SqlConnection Command DataReader  4 namespace Common  5 {  6     public class SqlHelper  7     {  8         //连接字符串  9         //1、添加引用 2、导入命名空间 为了使用ConfigurationManager 10         private static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; 11  12        //增删改查 13         //查找数据  ExecuteScalar()返回首行首列   ExecuteReader()  DataTable 14  15  16         ///  17         /// 返回DataTable 18         ///  19         /// 所用的sql语句 20         /// 可变,可以传参也可以不传参数 21         /// 
22 public static DataTable ExecuteDataTable(string sql, params SqlParameter[] param) 23 { 24 DataTable dt = new DataTable(); 25 using (SqlConnection con = new SqlConnection(conStr)) 26 { 27 using (SqlDataAdapter adapter = new SqlDataAdapter(sql, con)) 28 { 29 //添加参数 30 adapter.SelectCommand.Parameters.AddRange(param); 31 //1.打开链接,如果连接没有打开,则它给你打开;如果打开,就算了 32 //2.去执行sql语句,读取数据库 33 //3.sqlDataReader,把读取到的数据填充到内存表中 34 adapter.Fill(dt); 35 } 36 } 37 return dt; 38 } 39 40 /// 41 /// 执行查询,返回首行首列 42 /// 43 /// 44 /// 45 ///
46 public static object ExecuteScalar(string sql, params SqlParameter[] param) 47 { 48 object o = null; 49 using (SqlConnection con = new SqlConnection(conStr)) 50 { 51 using (SqlCommand cmd = new SqlCommand(sql, con)) 52 { 53 cmd.Parameters.AddRange(param); 54 con.Open(); 55 56 o = cmd.ExecuteScalar(); 57 } 58 } 59 return o; 60 } 61 62 63 /// 64 /// 执行查询,返回SqlDataReader对象 65 /// 66 /// 67 /// 68 ///
69 public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param) 70 { 71 SqlDataReader reader = null; 72 using (SqlConnection con = new SqlConnection(conStr)) 73 { 74 using (SqlCommand cmd = new SqlCommand(sql, con)) 75 { 76 cmd.Parameters.AddRange(param); 77 con.Open(); 78 79 reader = cmd.ExecuteReader(); 80 } 81 } 82 return reader; 83 } 84 85 /// 86 /// 执行增删改,返回受影响的行数 87 /// 88 /// 89 /// 90 ///
91 public static int ExecuteNonQuery(string sql, params SqlParameter[] param) 92 { 93 int n = -1; 94 using (SqlConnection con = new SqlConnection(conStr)) 95 { 96 using (SqlCommand cmd = new SqlCommand(sql, con)) 97 { 98 cmd.Parameters.AddRange(param); 99 con.Open();100 n = cmd.ExecuteNonQuery();101 }102 }103 return n;104 }105 106 }107 }
C#
using三种使用方法:
C#
namespace: 是为了防止命名重复的 。
比如你在两个不同的 中都可以有Student类。
此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。
 
C#中
Sqlparamater的用法:
 下面这个是应用
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);        }    }

 

转载于:https://www.cnblogs.com/mengxiao/p/6273820.html

你可能感兴趣的文章
Linux 下模拟Http 的get or post请求(curl和wget两种方法)
查看>>
Windows去除快捷箭头
查看>>
关于分页的解决方案收集
查看>>
angularjs指令参数transclude
查看>>
GPT(保护分区)解决办法
查看>>
图像美颜篇(磨皮、锐化、美白)
查看>>
Observer模式
查看>>
写的比较规范的网站
查看>>
使用eclipse生成文档(javadoc)主要有三种方法:
查看>>
ajax提交json数据,后台解析问题
查看>>
【转】iOS开发里的Bundle是个啥玩意?!
查看>>
2016第43周四
查看>>
Qt Creator快捷键
查看>>
解读Raft(四 成员变更)
查看>>
mysql case when 判断null
查看>>
Convert enumeraltor to Dictionary object
查看>>
ios中封装网络和tableview的综合运用
查看>>
如何做好微信营销?
查看>>
Ubuntu下将python从2.7升级到3.5
查看>>
Fastboot线刷“复活”之刷机心得(三)——错误处理
查看>>