江湖救急!同时向2个表中插入不同数据

52net 2009-10-12 01:58:54
最近在写一个销售系统,涉及到销售单时要同时将数据插入到2个不同的表格中,向第一个表插入销售单简要信息,主要是:经手人,客户,销售数量和金额 ;向第2个表中插入各个销售物品的详细信息(即销售物品每次不止一个),如商品名称,价格,数量,金额, 对于这个问题,该怎么写个事务来实现啊,谢谢。我用的数据库操作类

#region 给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
/// <param name="ConnStr">一个有效的连接字符串</param>
/// <param name="commandText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(ConnStr ))
{
PrepareCommand(cmd, conn, null, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
#endregion

#region 使用现有的SQL事务执行一个sql命令(不返回数据集)
/// <summary>
///使用现有的SQL事务执行一个sql命令(不返回数据集)
/// </summary>
/// <remarks>
///举例:
/// int result = ExecuteNonQuery(trans, "PublishOrders", new OleDbParameter("@prodid", 24));
/// </remarks>
/// <param name="trans">一个现有的事务</param>
/// <param name="commandText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public static int ExecuteNonQuery(OleDbTransaction trans, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
#endregion
...全文
92 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
owenliangbin 2009-10-12
  • 打赏
  • 举报
回复
new一个OleDbTransaction实例trans;
try
{
打开事务trans;
插入表一;
插入表二;
提交事务trans;
}
catch(..)
{
回滚事务trans;
}
final
{
关闭事务;
}
//还是百度一下的好,不常用我就忘了。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧