以下是调用例子:
public static DataTable GetUserInfo(string UserID)
{
string sql = "select * from V_User where UserID = @UserID";
List<SqlParameter> paras = new List<SqlParameter>(){
new SqlParameter("@UserID",UserID),
};
return Util.DBHelper.Select(sql, paras);
}
public static string Add(string Title, byte[] Body, string UserID)
{
if (Title == "")
{
return "标题不能为空";
}
string sql = "insert into Notice(ID,Title,Body,Enable,UserID) values(newid(),@Title,@Body,'Y',@UserID)";
List<SqlParameter> paras = new List<SqlParameter>() {
new SqlParameter("@Title",Title),
new SqlParameter("@Body",Body),
new SqlParameter("@UserID",UserID),
};
return Util.DBHelper.Action(sql, paras);
}
List<string> sqlList = new List<string>();
List<List<SqlParameter>> values = new List<List<SqlParameter>>();
for (int i = 0; i < dgv.Rows.Count; i++)
{
if ((bool)dgv.Rows[i].Cells[0].EditedFormattedValue == true)
{
if (this.dgv.Rows[i].Cells["KW"].Value == null || this.dgv.Rows[i].Cells["KW"].Value.ToString() == "")
{
MessageBox.Show("您存在物料没有填写库位", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
sqlList.Add("insert into BG_CWLC(DJH,SCDD,GX,GZZX,LPSL,BLPSL,RGGS,JQGS,WLBM,WLMS,YDLX,GC,KW,PCGL,PC,SL,DW,CFSL,STATUS,UserID,BZSL) " +
"values('" + DJH + "','" + SCDD + "','" + GX + "','" + GZZX + "','" + LPSL + "','" + BLPSL + "','" + RGGS + "','" + JQGS
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells[1].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells[2].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells[3].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells[4].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells[5].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells[6].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells[7].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells["SL"].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells["DW2"].Value)
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells["CFSL"].Value)
+ "','" + "财务审批"
+ "','" + Util.Configure.UserID
+ "','" + Convert.ToString(this.dgv.Rows[i].Cells["BZSL"].Value) + "')");
values.Add(new List<SqlParameter>() {
});
cnt++;
}
}
string rst = Util.DBHelper.ExecuteSqlTran(sqlList, values);
if (rst != "")
{
MessageBox.Show(rst, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
有查询、操作的方法,已封装好:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
namespace LIPSystem.Util
{
public class DBHelper
{
/// <summary>
/// 查询记录
/// </summary>
/// <param name="sql">sql语句</param>
/// <returns></returns>
public static DataTable Select(string sql)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
DataTable dt = new DataTable();
try
{
if (sqlCon != null)
{
sqlCon.Open();
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(sql, sqlCon);
sda.Fill(ds);
dt = ds.Tables[0];
return dt;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCon.Close();
}
return null;
}
}
/// <summary>
/// 查询记录
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="paras">参数集合</param>
/// <returns></returns>
public static DataTable Select(string sql, List<SqlParameter> paras)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
DataTable dt = new DataTable();
try
{
if (sqlCon != null)
{
sqlCon.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, sqlCon);
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);
}
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
cmd.Parameters.Clear();
return ds.Tables[0];
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCon.Close();
}
return null;
}
}
/// <summary>
/// 查询记录
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="paras">参数集合</param>
/// <returns></returns>
public static DataTable MESSelect(string sql, List<SqlParameter> paras)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.MESConnStr))
{
DataTable dt = new DataTable();
try
{
if (sqlCon != null)
{
sqlCon.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, sqlCon);
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);
}
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
cmd.Parameters.Clear();
return ds.Tables[0];
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCon.Close();
}
return null;
}
}
/// <summary>
/// 查询记录
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="paras">参数集合</param>
/// <returns></returns>
public static DataTable SelectMES(string sql, List<SqlParameter> paras)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.MESConnStr))
{
DataTable dt = new DataTable();
try
{
if (sqlCon != null)
{
sqlCon.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, sqlCon);
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);
}
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
cmd.Parameters.Clear();
return ds.Tables[0];
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCon.Close();
}
return null;
}
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="sql">sql语句</param>
/// <returns>返回执行语句影响条数</returns>
public static int Action(string sql)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
try
{
if (sqlCon != null)
{
sqlCon.Open();
SqlCommand cmd = new SqlCommand(sql, sqlCon);
int rows = cmd.ExecuteNonQuery();
cmd.Dispose();
return rows;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCon.Close();
}
return -1;
}
}
/// <summary>
/// 执行SQL语句
/// </summary>
public static string Action(string sql, List<SqlParameter> paras)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
try
{
if (sqlCon != null)
{
sqlCon.Open();
SqlCommand cmd = new SqlCommand(sql, sqlCon);
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);
}
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
return "";
}
else
{
return "数据库连接失败";
}
}
catch (Exception ex)
{
return ex.Message;
}
finally
{
sqlCon.Close();
}
}
}
/// <summary>
/// 批量更新
/// </summary>
/// <param name="dt">更新的内容</param>
/// <param name="tableName">目标表</param>
/// <returns></returns>
public static Boolean AddTable(DataTable dt, string tableName)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
try
{
sqlCon.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlCon))
{
bulkCopy.DestinationTableName = tableName;
for (int i = 0; i < dt.Columns.Count; i++)
{
bulkCopy.ColumnMappings.Add(dt.Columns[i].Caption.ToString(), dt.Columns[i].Caption.ToString());
}
bulkCopy.WriteToServer(dt);
return true;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCon.Close();
}
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static string ExecuteSqlTran(List<String> SQLStringList)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
sqlCon.Open(); //打开数据库连接
SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令
cmd.Connection = sqlCon; //设置命令连接
SqlTransaction tx = sqlCon.BeginTransaction();//开始事务
cmd.Transaction = tx;//设置执行命令的事务
cmd.CommandTimeout = 180;
try
{
int count = 0;//定义int类型变量,存放该函数返回值
for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句
{
string strsql = SQLStringList[n]; //第n条sql语句
if (strsql.Trim().Length > 1) //如果第n条sql语句不为空
{
cmd.CommandText = strsql; //设置执行命令的sql语句
count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句
}
}
tx.Commit();//提交事务
return "";//返回受影响行数
}
catch (Exception ex)
{
tx.Rollback();
return ex.Message;
}
finally
{
sqlCon.Close();
}
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static string ExecuteSqlTran(List<String> SQLStringList, List<List<SqlParameter>> parasList)
{
if (SQLStringList.Count != parasList.Count)
{
return "参数错误";
}
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
sqlCon.Open(); //打开数据库连接
SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令
cmd.Connection = sqlCon; //设置命令连接
SqlTransaction tx = sqlCon.BeginTransaction();//开始事务
cmd.Transaction = tx;//设置执行命令的事务
try
{
int count = 0;//定义int类型变量,存放该函数返回值
for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句
{
string strsql = SQLStringList[n]; //第n条sql语句
if (strsql.Trim().Length > 1) //如果第n条sql语句不为空
{
cmd.CommandText = strsql; //设置执行命令的sql语句
foreach (SqlParameter para in parasList[n])
{
cmd.Parameters.Add(para);
}
count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句
}
}
tx.Commit();//提交事务
cmd.Parameters.Clear();
return "";
}
catch (Exception ex)
{
tx.Rollback();
return ex.Message;
}
finally
{
sqlCon.Close();
}
}
}
public static string SendMail(List<String> SQLStringList, List<List<SqlParameter>> parasList)
{
if (SQLStringList.Count != parasList.Count)
{
return "参数错误";
}
using (SqlConnection sqlCon = new SqlConnection(@"Data Source=192.168.7.104;Initial Catalog=SCP_N;uid=SCP;pwd=SCPscp!@#"))
{
sqlCon.Open(); //打开数据库连接
SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令
cmd.Connection = sqlCon; //设置命令连接
SqlTransaction tx = sqlCon.BeginTransaction();//开始事务
cmd.Transaction = tx;//设置执行命令的事务
try
{
int count = 0;//定义int类型变量,存放该函数返回值
for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句
{
string strsql = SQLStringList[n]; //第n条sql语句
if (strsql.Trim().Length > 1) //如果第n条sql语句不为空
{
cmd.CommandText = strsql; //设置执行命令的sql语句
foreach (SqlParameter para in parasList[n])
{
cmd.Parameters.Add(para);
}
count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句
}
}
tx.Commit();//提交事务
cmd.Parameters.Clear();
return "";
}
catch (Exception ex)
{
tx.Rollback();
return ex.Message;
}
finally
{
sqlCon.Close();
}
}
}
public static string ExecuteSqlTranMES(List<String> SQLStringList, List<List<SqlParameter>> parasList)
{
if (SQLStringList.Count != parasList.Count)
{
return "参数错误";
}
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.MESConnStr))
{
sqlCon.Open(); //打开数据库连接
SqlCommand cmd = new SqlCommand(); //创建SqlCommand命令
cmd.Connection = sqlCon; //设置命令连接
SqlTransaction tx = sqlCon.BeginTransaction();//开始事务
cmd.Transaction = tx;//设置执行命令的事务
try
{
int count = 0;//定义int类型变量,存放该函数返回值
for (int n = 0; n < SQLStringList.Count; n++)//循环传入的sql语句
{
string strsql = SQLStringList[n]; //第n条sql语句
if (strsql.Trim().Length > 1) //如果第n条sql语句不为空
{
cmd.CommandText = strsql; //设置执行命令的sql语句
foreach (SqlParameter para in parasList[n])
{
cmd.Parameters.Add(para);
}
count += cmd.ExecuteNonQuery(); //调用执行增删改sql语句的函数ExecuteNonQuery(),执行sql语句
}
}
tx.Commit();//提交事务
cmd.Parameters.Clear();
return "";
}
catch (Exception ex)
{
tx.Rollback();
return ex.Message;
}
finally
{
sqlCon.Close();
}
}
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="ProcName"></param>
/// <param name="paras"></param>
/// <returns></returns>
public static DataSet RunProcedure(string ProcName, List<SqlParameter> paras)
{
using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
{
try
{
SqlCommand cmd = new SqlCommand(ProcName, sqlCon);
foreach (SqlParameter para in paras)
{
cmd.Parameters.Add(para);
}
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter dap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
cmd.CommandTimeout = 120;
dap.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlCon.Close();
}
}
}
}
}