C# ADO基础 SqlHelper
class SqlHelper
{
//这个是将连接数据库的字符串写到配置文件中的
private static string connStr = ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString;
// 我们当然也可以这样写(string sql, SqlParameter[] parameters)不过这样的话每次调用即使没有参数也要写个空参数
//用params 是可变参数,使用它时一定要放到最后面,这样编译器会先匹配前面的参数,还有对应的参数一定要是数组
public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
//foreach (SqlParameter param in parameters)
//{
// cmd.Parameters.Add(param);
//}
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
}
}
public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar();
}
}
}
//改进一下上面的,因为返回的是一张表
public static DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset.Tables[0];
}
}
}
//我们就可以这样调用了
private void button3_Click(object sender, RoutedEventArgs e)
{
// 没有使用params ...SqlHelper.ExecuteNonQuery("insert into admin(name,password,rank) values('kkeek','123456',1)",new SqlParameter[0]);
SqlHelper.ExecuteNonQuery("insert into admin(name,password,rank) values('kkeek','123456',1)");
}
private void button4_Click(object sender, RoutedEventArgs e)
{
DataTable ds = SqlHelper.ExecuteDataTable("select * from admin where rank=@rank", new SqlParameter[] { new SqlParameter("@rank", 2)});
foreach (DataRow row in ds.Rows)
{
string name = (string)row["name"];
MessageBox.Show(name);
}
}
最新文章
- SPSS数据分析—对数线性模型
- python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨
- 获取在线APP的素材图片
- 给Asp.Net MVC及WebApi添加路由优先级
- eclipse如何导入java项目文件
- [SDN] mininet walkthrough
- study
- Linux下用C读取配置文件。类似ini这样。
- hive 显示表分区真实对应数据路径
- 从C++到Qt(命令行编译,讲解原理)
- sql function递归
- js关于setTimeout传参
- MySQL: Integer &; String types
- UWP:记录一下这几天踩到的坑
- csharp: LocalDataCache.sync
- jQuery之标签操作和返回顶部、登录验证、全选反选、克隆示例
- 配置Linux客户端使用socks5代理上网
- main函数如何调用文件外的函数
- NodeJS:(一)特性&;环境&;测试
- c#md5加密的简单用法