要注意DataSet的写法,有点麻烦
SqlHelper.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace WPFDemo01
{
class SqlHelper
{
//基础版SqlHelper
注意,要用这行代码前提是将连接字符串配置在了app.config配置文件中
//private static string connstr = ConfigurationManager.ConnectionStrings["linkDBStr"].ConnectionString;
封装方法的原则:把不变的放到方法里,把变化的放到参数中。
注意,命名虽然可以随便,但是要写好意思方便阅读
执行Update,Delete,Insert语句
//public static int ExecuteNonQuery(string sql)
//{
// using (SqlConnection conn = new SqlConnection(connstr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// return cmd.ExecuteNonQuery();
// }
// }
//}
返回第一行第一列
//public static object ExecuteScalar(string sql)
//{
// using (SqlConnection conn = new SqlConnection(connstr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// return cmd.ExecuteScalar();
// }
// }
//}
//DataSet版本1
返回一个DataSet,这里因为一般只会返回一个table,
所以返回值改为datatable更为简便,
以后根据需要看着改变
注意:只用来执行查询结果比较少的sql
//public static DataTable ExecuteDataTable(string sql)
//{
// using (SqlConnection conn = new SqlConnection(connstr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataSet dataset = new DataSet();
// adapter.Fill(dataset);//把adapter放入dataset中
// return dataset.Tables[0];
// }
// }
//}
//注意,要用这行代码前提是将连接字符串配置在了app.config配置文件中
private static string connstr = ConfigurationManager.ConnectionStrings["linkDBStr"].ConnectionString;
//封装方法的原则:把不变的放到方法里,把变化的放到参数中。
//注意,命名虽然可以随便,但是要写好意思方便阅读
//执行Update,Delete,Insert语句
public static int ExecuteNonQuery(string sql,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);//实质和foreach是一样的
return cmd.ExecuteNonQuery();
}
}
}
//返回第一行第一列
public static object ExecuteScalar(string sql,SqlParameter[] parameters)
{
using (SqlConnection con