可以直接调用,传参数即可 ,要说的就是第一行代码,需要在WEBCONFIG里加入一行代码,这行代码为数据库连接字符串,再使用第一行代码就可以读到这个了。
<connectionStrings> <add name="SQLStudentConnString" connectionString="Data Source=192.168.1.4;Initial Catalog=OA;User ID=sa;Password=sa;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/> </connectionStrings>
private static readonly string conStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
CommandType可以看下面的文档了解
CommandType 属性
指示 Command 对象的类型。
设置和返回值
设置或返回以下某个 CommandTypeEnum 值。
常量 | 说明 |
AdCmdText | 将 CommandText 作为命令或存储过程调用的文本化定义进行计算。 |
AdCmdTable | 将 CommandText 作为其列全部由内部生成的 SQL 查询返回的表格的名称进行计算。 |
AdCmdTableDirect | 将 CommandText 作为其列全部返回的表格的名称进行计算。 |
AdCmdStoredProc | 将 CommandText 作为存储过程名进行计算。 |
AdCmdUnknown | 默认值。CommandText 属性中的命令类型未知。 |
adCmdFile | 将 CommandText 作为持久 Recordset 文件名进行计算。 |
AdExecuteNoRecords | 指示 CommandText 为不返回行的命令或存储过程(例如,插入数据的命令)。如果检索任意行,则将丢弃这些行且并不返回。它总是与 adCmdText 或 adCmdStoredProc 进行组合。 |
params参数可以选填多个或不填。为传入的参数
//执行增删改的
public static int ExecuteNonQuery(string sql, CommandType cmdType, params SqlParameter[] pms)
{
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
cmd.CommandType = cmdType;
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteNonQuery();
}
}
}
//封装一个执行返回单个值的方法
public static object ExecuteScalar(string sql, CommandType cmdType, params SqlParameter[] pms)
{
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
cmd.CommandType = cmdType;
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteScalar();
}
}
}
//返回SqlDataReader对象的方法
public static SqlDataReader ExecuteReader(string sql, CommandType cmdType, params SqlParameter[] pms)
{
SqlConnection con = new SqlConnection(conStr);
using (SqlCommand cmd = new SqlCommand(sql, con))
{
cmd.CommandType = cmdType;
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
try
{
con.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception)
{
con.Close();
con.Dispose();
throw;
}
}
}
//封装一个返回DataTable的方法
public static DataTable ExecuteDataTable(string sql, CommandType cmdType, params SqlParameter[] pms)
{
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conStr))
{
adapter.SelectCommand.CommandType = cmdType;
if (pms != null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
}
adapter.Fill(dt);
}
return dt;
}
//封装一个带事务的执行Sql语句的方法
public static void ExecuteNonQueryTran(List<SqlAndParameter> list)
{
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = con.CreateCommand())
{
con.Open();
using (SqlTransaction trans = con.BeginTransaction())
{
cmd.Transaction = trans;
try
{
foreach (var SqlObject in list)
{
cmd.CommandText = SqlObject.Sql;
if (SqlObject.Parameters != null)
{
cmd.Parameters.AddRange(SqlObject.Parameters);
}
cmd.CommandType = SqlObject.CmdType;
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
trans.Commit();
}
catch (Exception)
{
trans.Rollback();
throw;
}
}
}
}
}
}
public class SqlAndParameter
{
public string Sql
{
get;
set;
}
public SqlParameter[] Parameters
{
get;
set;
}
public CommandType CmdType
{
get;
set;
}
}can's