//深入视频没下载完成没看,直接拿老师的代码贴上来了
//相应的有CommonHelper,将程序大多UI窗口用到的方法放到里面去。
//后话:这里有三个版本的SqlHelper
第一个版本只能传递”sql语句”参数,简单,但无法抵挡sql注入攻击
第二个版本还可以传递SqlParameter数组参数,即可以传递不确定个数的参数进来(当然第一个参数必须确定得是sql语句参数)。但在使用过程中比较麻烦,比较给参数New一个SqlParameter对象存入参数值。
第三个版本在第二个版本的基础上,是SqlHelper使用变得简单,可以直接传入数值,而不是SqlParameter对象。主要应用这个params咚咚,没深入学过C#,不懂这个咚咚,说是长度可变变量。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Configuration;
usingSystem.Data.SqlClient;
usingSystem.Data;
namespaceADONET2
{
classSqlHelper
{
privatestaticstringconnStr=ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString;
//封装方法原则:把不变的放到方法中,把变化的放到参数中
////publicstaticintExecuteNonQuery(stringsql)
////{
////using(SqlConnectionconn=newSqlConnection(connStr))
////{
////conn.Open();
////using(SqlCommandcmd=conn.CreateCommand())
////{
////cmd.CommandText=sql;
////returncmd.ExecuteNonQuery();
////}
////}
////}
////publicstaticobjectExecuteScalar(stringsql)
////{
////using(SqlConnectionconn=newSqlConnection(connStr))
////{
////conn.Open();
////using(SqlCommandcmd=conn.CreateCommand())
////{
////cmd.CommandText=sql;
////returncmd.ExecuteScalar();
////}
////}
////}
//////只用来执行查询结果比较少的sql
////publicstaticDataTableExecuteDataTable(stringsql)
////{
////using(SqlConnectionconn=newSqlConnection(connStr))
////{
////conn.Open();
////using(SqlCommandcmd=conn.CreateCommand())
////{
////cmd.CommandText=sql;
////SqlDataAdapteradapter=newSqlDataAdapter(cmd);
////DataSetdataset=newDataSet();
////adapter.Fill(dataset);
////returndataset.Tables[0];
////}
////}
////}
//第二版
//publicstaticintExecuteNonQuery(stringsql,SqlParameter[]parameters)
//{
//using(SqlConnectionconn=newSqlConnection(connStr))
//{
//conn.Open();
//using(SqlCommandcmd=conn.CreateCommand())
//{
//cmd.CommandText=sql;
////foreach(SqlParameterparaminparameters)
////{
////cmd.Parameters.Add(param);
////}
//cmd.Parameters.AddRange(parameters);
//returncmd.ExecuteNonQuery();
//}
//}
//}
//publicstaticobjectExecuteScalar(stringsql,SqlParameter[]parameters)
//{
//using(SqlConnectionconn=newSqlConnection(connStr))
//{
//conn.Open();
//using(SqlCommandcmd=conn.CreateCommand())
//{
//cmd.CommandText=sql;
//cmd.Parameters.AddRange(parameters);
//returncmd.ExecuteScalar();
//}
//}
//}
////只用来执行查询结果比较少的sql
//publicstaticDataTableExecuteDataTable(stringsql,SqlParameter[]parameters)
//{
//using(SqlConnectionconn=newSqlConnection(connStr))
//{
//conn.Open();
//using(SqlCommandcmd=conn.CreateCommand())
//{
//cmd.CommandText=sql;
//cmd.Parameters.AddRange(parameters);
//SqlDataAdapteradapter=newSqlDataAdapter(cmd);
//DataSetdataset=newDataSet();
//adapter.Fill(dataset);
//returndataset.Tables[0];
//}
//}
//}
//第三版:使用长度可变参数来简化
publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]parameters)
{
using(SqlConnectionconn=newSqlConnection(connStr))
{
conn.Open();
using(SqlCommandcmd=conn.CreateCommand())
{
cmd.CommandText=sql;
//foreach(SqlParameterparaminparameters)
//{
//cmd.Parameters.Add(param);
//}
cmd.Parameters.AddRange(parameters);
returncmd.ExecuteNonQuery();
}
}
}
publicstaticobjectExecuteScalar(stringsql,paramsSqlParameter[]parameters)
{
using(SqlConnectionconn=newSqlConnection(connStr))
{
conn.Open();
using(SqlCommandcmd=conn.CreateCommand())
{
cmd.CommandText=sql;
cmd.Parameters.AddRange(parameters);
returncmd.ExecuteScalar();
}
}
}
//只用来执行查询结果比较少的sql
publicstaticDataTableExecuteDataTable(stringsql,paramsSqlParameter[]parameters)
{
using(SqlConnectionconn=newSqlConnection(connStr))
{
conn.Open();
using(SqlCommandcmd=conn.CreateCommand())
{
cmd.CommandText=sql;
cmd.Parameters.AddRange(parameters);
SqlDataAdapteradapter=newSqlDataAdapter(cmd);
DataSetdataset=newDataSet();
adapter.Fill(dataset);
returndataset.Tables[0];
}
}
}
}
}
相关推荐
C#WPF sqlserver 数据库 封装好的类 可以直接使用,带测试用数据库,为了方便大家使用,好用请给评价
C# WPF2012 操作sqlserver2008数据库 上传文件到数据库中,可以上传各种文件,例如图片、txt、doc等,存入到数据库中;使用时,下载到本地,路径请自己修改。好用的别忘了给评价
WPF开发教程.rar 目录 WPF基础入门 3 1. WPF基础之体系结构 3 2. WPF基础之XAML 9 3. WPF基础之基元素 23 4. WPF基础之属性系统 26 5. WPF基础之路由事件 33 6. WPF基础之布局系统 46 7. WPF基础之样式设置和模板化...
这是一款界面比较精美的基于WPF技术的开发框架,该框架是作者在开发公司客户端时写的框架, 该框架标题为交通建设项目管理信息化系统。 二、功能介绍 1.代码按照三层结构+MVC模式设计。 2.界面展现层采用WPF开发...
C# WPF sqlserver等增删查改数据库工具类
C# wpf条形码打印C# wpf条形码打印C# wpf条形码打印C# wpf条形码打印C# wpf条形码打印C# wpf条形码打印C# wpf条形码打印C# wpf条形码打印
该例程是由C# WPF实现功能比较全面的串口调试助手,对于需要开发串口功能的朋友,可以从中学习到串口的相关功能与操作,便于更好的完成自己的项目
一:SOA的分布式理念 现在的开发理念,不管是企业级的ERP,还是网站式的应用,都涉及到了SOA的分布式。就拿一个比较典型的网站来说吧,做网站的童鞋们对... 开发环境为Visual Studio 2010,数据库为SQL Server 2008,
一个简单的数据库链接例子 在WPF界面上进行操作 实现对数据库数据的增删改查 适合初初初学者 高手不要下 也别喷我
* 作者是做硬件的,只为学习做简单的上位机程序,C#简单,开发效率高,所以选择C# * 以前没有PC端软件编程经验,所以该编程思想继承于单片机编程思想,未用到面向对象和WPF的精髓,不建议模仿,仅供参考 * 实际上...
一个简单的数据库链接例子 在WPF界面上进行操作 实现对数据库数据的增删改查 适合初初初学者 高手不要下 也别喷我
ECHART C# WPF,
50M-c#wpf最强案例,是学习C# WPF良好的参考资料。原生代码,学习利器。
wpf 访问Access 数据库 基础 控件
C#、WPF使用技巧,实战应用开发小系统参考资料,源码参考。经测试可运行。 详细介绍了一些WPF框架的各种功能和模块,以及如何使用WPF进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够...
给大家分享一套课程——C#+WPF上位机开发课程(模块化与反应式编程)。 WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于...
基于C#WPF平台的财务管理系统,适合初学者,包括会计凭证录入 失算平衡
C# WPF 在ListView 中 动态添加ProgressBar, 开发环境vs
C#工资计算系统C#工资计算系统C#工资计算系统C#工资计算系统C#工资计算系统C#工资计算系统C#工资计算系统C#工资计算系统 ...WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF WPF
C#读取XML文件并写入数据库的三种方法,直接写入和先读取到内存再写入数据库