C#开发学习——SqlHelper的应用
2018-06-22 07:44:20来源:未知 阅读 ()
使用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类方便使用
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 /// <summary> 17 /// 返回DataTable 18 /// </summary> 19 /// <param name="sql">所用的sql语句</param> 20 /// <param name="param">可变,可以传参也可以不传参数</param> 21 /// <returns></returns> 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 /// <summary> 41 /// 执行查询,返回首行首列 42 /// </summary> 43 /// <param name="sql"></param> 44 /// <param name="param"></param> 45 /// <returns></returns> 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 /// <summary> 64 /// 执行查询,返回SqlDataReader对象 65 /// </summary> 66 /// <param name="sql"></param> 67 /// <param name="param"></param> 68 /// <returns></returns> 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 /// <summary> 86 /// 执行增删改,返回受影响的行数 87 /// </summary> 88 /// <param name="sql"></param> 89 /// <param name="param"></param> 90 /// <returns></returns> 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 }
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); } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- asp.net定点执行任务的方法 2020-03-18
- ASP.NET实现进度条效果 2020-03-15
- MVC数据验证详解 2020-03-14
- 用继承方法实现页面判断session的方法 2020-03-10
- asp控件和html控件的概念区别 2020-03-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash