事务(批量执行多条SQL)

本文介绍了一种通过SQL语句进行数据查询与批量操作的方法,包括执行单条SQL语句获取返回值、获取数据集、读取数据流及批量执行多条SQL语句等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


public string executeGetReturn(string strSql)//strSql 是传入SQL命令语句
{
//得到数据的连接 并且这个连接是打开
// getCon();
//建立一个 命令对象
cmd.Connection = getCon(); //命令对象是需要基于 一个已经打开了的连接
cmd.CommandText = strSql; //指定数据库命令对象的 执行语句
string result = cmd.ExecuteScalar().ToString(); //执行命令语句,并将其以字符串的形式返回
clear();
return result;
}
//得到一个数据集
public DataSet getDs(string strSql,string tableName)
{
SqlDataAdapter sda = new SqlDataAdapter(strSql, getCon());
DataSet ds = new DataSet();
sda.Fill(ds, tableName);
clear();
return ds;
}
//根据传入的SQL语句,执行并返回一个只向前的数据流DataReader
public SqlDataReader getSdr(string strSql)
{
cmd.Connection = getCon();
cmd.CommandText = strSql;
SqlDataReader sdr = cmd.ExecuteReader();
return sdr;
}
//定义批量执行多条SQL语句的方法
public bool executeTransaction(string[] strSql)
{
bool flag = false;
con = getCon();//得到连接
cmd.Connection = con;//命令对象
SqlTransaction myTransaction; //声明一个SQL事物类型
myTransaction = con.BeginTransaction();//基于一个连接初始化事物
file:///J|/技术/asp.net/事物.txt(第 1/3 页)[2008-11-15 22:01:39]
file:///J|/技术/asp.net/事物.txt
try
{
/*
for (int i = 0; i < strSql.Length; i++)
{
cmd.Transaction = myTransaction;//指定SQL命令语句 的事物
cmd.CommandText = strSql[i];//给定命令语句
cmd.ExecuteNonQuery();//执行SQL语句
}
* */
int i = 0;
/*
while(i<strSql.Length)
{
cmd.Transaction = myTransaction;//指定SQL命令语句 的事物
cmd.CommandText = strSql[i];//给定命令语句
cmd.ExecuteNonQuery();//执行SQL语句
i += 1;
}*/
/*
do
{
cmd.Transaction = myTransaction;//指定SQL命令语句 的事物
cmd.CommandText = strSql[i];//给定命令语句
cmd.ExecuteNonQuery();//执行SQL语句
i += 1;
} while (i < strSql.Length);
*/
foreach (string sql in strSql)//遍历
{
cmd.Transaction = myTransaction;//指定SQL命令语句 的事物
cmd.CommandText = sql;//给定命令语句
cmd.ExecuteNonQuery();//执行SQL语句
}
myTransaction.Commit();
flag = true;
}
catch (Exception e)
{
myTransaction.Rollback();
flag = false;
}

finally
{
clear();
}
return flag;
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值