dotnet中调用存储过程的用法,包含事务处理
2007-09-13 11:08
537 查看
簡單的存儲過程如下:
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;
public partial class TaskAdministration_test : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
}
protected void Button1_Click(object sender, EventArgs e)
...{
ExcelOperation OEM = new ExcelOperation();
string isCommit = "Y";
Database db = DatabaseFactory.CreateDatabase();
DbConnection tconn = db.CreateConnection();
DbCommand cmd = tconn.CreateCommand();
DbCommand cmd1 = tconn.CreateCommand();
tconn.Open();
DbTransaction ttran= tconn.BeginTransaction();
cmd.Connection = ttran.Connection;
cmd1.Connection = ttran.Connection;
cmd.Transaction = ttran;
cmd1.Transaction = ttran;
try
...{
cmd.CommandText = "PR_INSERTDM";
cmd.CommandType = CommandType.StoredProcedure;
OEM.AddInParameter(cmd, "ptaskid",txt1.Text);
OEM.AddInParameter(cmd, "proleid", txt2.Text);
OEM.AddInParameter(cmd, "pmembername", txt3.Text);
cmd.ExecuteNonQuery();
cmd1.CommandText = "PR_INSERTDT";
cmd1.CommandType = CommandType.StoredProcedure;
OEM.AddInParameter(cmd1, "PTASKID", txt4.Text);
OEM.AddInParameter(cmd1, "PROLEID", txt5.Text);
OEM.AddInParameter(cmd1, "PDEPTNAME", txt6.Text);
cmd1.ExecuteNonQuery();
}
catch(Exception ex)
...{
isCommit = "No";
tconn.Close();
}
finally
...{
if (isCommit == "No")
...{
ttran.Rollback();
throw new Exception("操作失敗!");
}
else
...{
ttran.Commit();
}
tconn.Close();
}
}
}
説明:1.存儲過程和類都比較簡單,目的是盡量簡單的説明在事務中調用多個存儲過程的用法.
2.可能有比這個更好的代碼,如果願意你可以發表你的評論,我很樂意接受.
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;
public partial class TaskAdministration_test : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
}
protected void Button1_Click(object sender, EventArgs e)
...{
ExcelOperation OEM = new ExcelOperation();
string isCommit = "Y";
Database db = DatabaseFactory.CreateDatabase();
DbConnection tconn = db.CreateConnection();
DbCommand cmd = tconn.CreateCommand();
DbCommand cmd1 = tconn.CreateCommand();
tconn.Open();
DbTransaction ttran= tconn.BeginTransaction();
cmd.Connection = ttran.Connection;
cmd1.Connection = ttran.Connection;
cmd.Transaction = ttran;
cmd1.Transaction = ttran;
try
...{
cmd.CommandText = "PR_INSERTDM";
cmd.CommandType = CommandType.StoredProcedure;
OEM.AddInParameter(cmd, "ptaskid",txt1.Text);
OEM.AddInParameter(cmd, "proleid", txt2.Text);
OEM.AddInParameter(cmd, "pmembername", txt3.Text);
cmd.ExecuteNonQuery();
cmd1.CommandText = "PR_INSERTDT";
cmd1.CommandType = CommandType.StoredProcedure;
OEM.AddInParameter(cmd1, "PTASKID", txt4.Text);
OEM.AddInParameter(cmd1, "PROLEID", txt5.Text);
OEM.AddInParameter(cmd1, "PDEPTNAME", txt6.Text);
cmd1.ExecuteNonQuery();
}
catch(Exception ex)
...{
isCommit = "No";
tconn.Close();
}
finally
...{
if (isCommit == "No")
...{
ttran.Rollback();
throw new Exception("操作失敗!");
}
else
...{
ttran.Commit();
}
tconn.Close();
}
}
}
説明:1.存儲過程和類都比較簡單,目的是盡量簡單的説明在事務中調用多個存儲過程的用法.
2.可能有比這個更好的代碼,如果願意你可以發表你的評論,我很樂意接受.
相关文章推荐
- dotnet中调用存储过程的用法,不含事务处理
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,输出参数,嵌套调用
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- SQLServer下 存储过程内 包含事务 及 返回处理是否成功
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子(包含事务,输出参数,嵌套调用)
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子(包含事务,输出参数,嵌套调用)
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等(转)
- [轉]MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- SQLServer下 存储过程内 包含事务 及 返回处理是否成功
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- SQLServer下 存储过程内 包含事务 及 返回处理是否成功