/// <summary>
/// 带事务执行存储过程,该方法主要用于执行用于数据维护类的存储过程执行
/// </summary>
/// <param name="cmdText">存储过程名称</param>
/// <param name="parms">SQL参数数组</param>
public int ExecuteSPNoneQuery(string cmdText, SqlParameter[] parms)
{
openConn();
SqlTransaction transaction = sqlConn.BeginTransaction();
SqlCommand myCmd = new SqlCommand(cmdText, sqlConn);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.AddRange(parms);
myCmd.Transaction = transaction;
try
{
return myCmd.ExecuteNonQuery();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
finally
{
closeConn();
}
}
提示transaction是:“检测到无法访问的代码”?
并且每次不不执行这个语句transaction.Commit();
/// 带事务执行存储过程,该方法主要用于执行用于数据维护类的存储过程执行
/// </summary>
/// <param name="cmdText">存储过程名称</param>
/// <param name="parms">SQL参数数组</param>
public int ExecuteSPNoneQuery(string cmdText, SqlParameter[] parms)
{
openConn();
SqlTransaction transaction = sqlConn.BeginTransaction();
SqlCommand myCmd = new SqlCommand(cmdText, sqlConn);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.AddRange(parms);
myCmd.Transaction = transaction;
try
{
return myCmd.ExecuteNonQuery();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
finally
{
closeConn();
}
}
提示transaction是:“检测到无法访问的代码”?
并且每次不不执行这个语句transaction.Commit();
解决方案 »
- 求个NHibernate例子,最简单的的都行
- 滚动条问题!!!会的来帮帮忙吧
- asp.net yf.aspx.cs里取yf.aspx里html控件的值
- 求助!制作仿GOOGLE智能搜索框时碰到的问题
- datagird最下面一行实现个统计怎么做?
- 如何获取DataGrid页眉的一个控件
- 又一算法问题
- 到底是怎么回事呀??????我这3年在csdn上的问题怎么一下子给我删了!!!!!!!!!!!!!!!!!!!!!!111
- 哪位大哥帮小弟解决一下!DropDownList数据绑定问题!
- 服务器标记的格式不正确 着急~~着急~~~:(
- 怎么把dnf文件转换成excel形式????????????
- 刚学linq,问个菜鸟问题。。
return myCmd.ExecuteNonQuery();
transaction.Commit();
不能先return 在提交
因为return之后就不能提交了
想要返回myCmd.ExecuteNonQuery();的值要这样
int count;
count=myCmd.ExecuteNonQuery();
transaction.Commit();
return count;这样就没有问题了!
ALTER PROC InsertMercInfoAll
(
@Merchandise NVARCHAR(64),
@MerchandiseID VARCHAR(64),
@MercMoreKinds NVARCHAR(64),
@OutPrice MONEY,
@LeaguerPrice MONEY,
@GuarPeriod INT,
@MercRe NVARCHAR(256),
@PrivName NVARCHAR(64),
@PrivID INT,
@PrivAddr NVARCHAR(64),
@PrivPhoNum VARCHAR(64),
@PrivRe NVARCHAR(128),
@MercInNum INT,
@InPrice MONEY,
@InTime DATETIME,
@InRe NVARCHAR(128)
)
AS
BEGIN
IF(NOT EXISTS (SELECT * FROM dbo.商品表 WHERE 商品ID=@MerchandiseID))
BEGIN
INSERT INTO dbo.商品表 VALUES(@Merchandise,@MerchandiseID,@MercMoreKinds,@OutPrice,@LeaguerPrice,
@GuarPeriod,GETDATE(),@MercInNum,@MercRe)
INSERT INTO dbo.供货商表 VALUES(@PrivName,@PrivAddr,@PrivPhoNum,@PrivRe)
SET @PrivID=SELECT ID FROM dbo.供货商表 WHERE 供货商名=@PrivName
INSERT INTO dbo.进货表 VALUES(@MerchandiseID,@PrivID,@MercInNum,@InPrice,@InTime,@MercInNum*@InPrice,@InRe)
END
END请问这个是怎么实现的!!
供货商表的供货商ID是主键并且是自动增长的 我想在向进货表添加数据时同时把供货商ID添加到进货表中!
transaction.Commit();
return 下面这句不执行了
public int ExecuteSPNoneQuery(string cmdText, SqlParameter[] parms)
{
openConn();
SqlTransaction transaction = sqlConn.BeginTransaction();
SqlCommand myCmd = new SqlCommand(cmdText, sqlConn);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.AddRange(parms);
myCmd.Transaction = transaction;
try
{
int ret=myCmd.ExecuteNonQuery();
transaction.Commit();
return ret; }
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
finally
{
closeConn();
}
}
public void SqlTransactioin(string[] sqls)
{
using(SqlConnection con = new SqlConnection(""))
{
conn.Open();
SqlCommand comm = conn.CreateCommand();
SqlTransaction trans = conn.BeginTransaction();
comm.Transaction = trans;
try
{
foreach (string sql in sqls)
{
comm.CommandText = sql;
comm.ExecuteNonQuery();
}
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
}
}
conn.Close();
}
看看sqlhelper
{
return myCmd.ExecuteNonQuery();
transaction.Commit();
}
这里错了吧。
try里return没问题啊,
问题是,return之后还有代码