using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using System.Reflection; using System.Data.SqlClient; using System.Data; using Microsoft.VisualBasic; //调用VB的控件inputbox,首先添加引用Microsoft.VisualBasic,然后在命名空间中引用(using Microsoft.VisualBasic;) namespace SqlDAL { public class SQLHelper { public static string ConnectionString = ConfigurationManager.AppSettings["ConnStr"]; /// <summary> ///执行带参数的查询方式,返回值为表。 /// <param name="cmdTxt" >参数cmdText为所要执行的sql语句</param > /// <param name=" cmdType">查询时的查询方式</param> /// <param name="paras" >查询时的命令参数</param> /// <returns >查询后以表的形式返回,</returns > /// </summary> /// <remarks></remarks> public static DataTable GetDataTable(string cmdTxt, CommandType cmdType, SqlParameter[] paras) { SqlConnection conn = new SqlConnection(ConnectionString); //创建数据库的连接 SqlCommand cmd = default(SqlCommand); //定义命名变量。为什么要用default? DataSet adataset = null; //定义数据适配器,DataSet类表示一个存放于内存中的数据缓存 SqlDataAdapter adaptor = default(SqlDataAdapter); //SqlDataAdapter类目的是填充DataSet cmd = new SqlCommand(cmdTxt, conn); //在conn上面执行实例化命令变量,并执行语句cmdtype cmd.CommandType = cmdType; //命令执行的类型 cmd.Parameters.AddRange(paras); //命令执行的参数 adaptor = new SqlDataAdapter(cmd); //初始化 SqlDataAdapter 类的新实例,用指定的 cmd 作为 SelectCommand 的属性 adataset = new DataSet(); try { if (conn.State == ConnectionState.Closed) { conn.Open(); } adaptor.Fill(adataset); //向adaptor对象中填充查询的数据 } catch (Exception ex) { Interaction.MsgBox(ex.Message); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } return adataset.Tables[0]; //获取包含在 DataSet 中的表的集合。 } public static bool ExecuteNonQuery(string cmdTxt, CommandType cmdType, SqlParameter[] paras) { using (SqlConnection conn = new SqlConnection(ConnectionString)) { //创建数据库的连接 SqlCommand cmd = default(SqlCommand); //定义命名变量。为什么要用default? cmd = new SqlCommand(cmdTxt, conn); //在conn上面执行实例化命令变量,并执行语句cmdtype cmd.CommandType = cmdType; //命令执行的类型 cmd.Parameters.AddRange(paras); //命令执行的参数 conn.Open();//打开连接 int enq = cmd.ExecuteNonQuery();//判断返回的受影响的值是否大于零 bool flag; if (enq > 0) { flag = true; } else { flag = false; } return flag; } } } }