zoukankan
html css js c++ java
在程序中使用事务,处理无外键关系的表与表间的操作。
程序中使用事务,处理无外键关系的表与表间的操作
//
创建事务连接对象
SqlConnection myConn
=
new
SqlConnection(ConfigurationSettings.AppSettings[
"
conString
"
]);
try
{
myConn.Open();
//
打开连接
}
catch
(Exception ex)
{
labError.Text
=
"
提示信息:连接数据库失败,请查看网络!
"
+
ex.Message;
return
;
}
SqlTransaction myTrans
=
myConn.BeginTransaction();
//
主表事务
//
将连接对象和事务对象传入用于处理
iSuccess
=
Test_Add(myConn,myTrans,iState,txtTopic.Text.Trim(),txtCont.Text.Trim());
if
(iSuccess
>
0
)
{
int
iNum
=
0
;
//
将附件存入数据库
for
(
int
i
=
1
;i
<
local.Length;i
++
)
{
//
截取\User文件夹下的路径local[i]附件路径,多附件。
local[i]
=
local[i].Substring(local[i].IndexOf(
"
\\User
"
));
iNum
=
Attachment(myConn,myTrans,iSuccess,local[i]);
if
(iNum
<
1
)
{
//
myTrans.Rollback();
myConn.Close();
myConn.Dispose();
labError.Text
=
"
提示信息:附件加载失败,请查看网络!
"
;
return
;
}
}
iNum
=
0
;
//
将接收邮件用户信息存入数据库
for
(
int
i
=
0
;i
<
ary_Email.Count;i
++
)
{
//
添加邮件接收人的联系地址与用户名和议案调查的答题地址,因为不是议案调查所以答题地址为空
iNum
=
AddEmail(myConn,myTrans,iSuccess,ary_Name[i].ToString(),
""
,ary_Email[i].ToString());
if
(iNum
<
1
)
{
myTrans.Rollback();
myConn.Close();
myConn.Dispose();
labError.Text
=
"
提示信息:接收邮件用户信息加载失败,请查看网络!
"
;
return
;
}
}
myTrans.Commit();
//
事务结束
myConn.Close();
//
关闭连接
myConn.Dispose();
iNum
=
0
;
//
获取配置文件中的公司股票代码号
string
tmpCode
=
System.Configuration.ConfigurationSettings.AppSettings[
"
Code
"
].ToString().Trim();
//
写入分发中心审核信息表中
iNum
=
AddAuditing(tmpCode,iSuccess,txtTopic.Text.Trim(),txtCont.Text.Trim(),iCount,strUserName);
if
(iNum
<
1
)
{
labError.Text
=
"
提示信息:写入失败,请查看网络!
"
;
return
;
}
labError.Text
=
"
提示信息:邮件已经发送成功!
"
;
}
else
{
myTrans.Rollback();
myConn.Close();
myConn.Dispose();
labError.Text
=
"
提示信息:发送失败,网络繁忙!
"
;
}
//
以下为处理函数*************
public
static
int
Attachment(SqlConnection myConnection,SqlTransaction myTrans,
int
iSendLogID,
string
strAttachment)
{
//
Create Instance of Connection and Command Object
//
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand
=
new
SqlCommand(
"
MailAttachment_Add
"
, myConnection);
myCommand.Transaction
=
myTrans;
//
Mark the Command as a SPROC
myCommand.CommandType
=
CommandType.StoredProcedure;
//
Add Parameters to SPROC
SqlParameter SPSuccess
=
new
SqlParameter(
"
@iSuccess
"
, SqlDbType.Int,
4
);
SPSuccess.Direction
=
ParameterDirection.Output;
myCommand.Parameters.Add(SPSuccess);
SqlParameter SPSendLogID
=
new
SqlParameter(
"
@iSendLogID
"
, SqlDbType.Int);
SPSendLogID.Value
=
iSendLogID;
myCommand.Parameters.Add(SPSendLogID);
SqlParameter SPAttachment
=
new
SqlParameter(
"
@Attachment
"
, SqlDbType.VarChar,
200
);
SPAttachment.Value
=
strAttachment;
myCommand.Parameters.Add(SPAttachment);
//
Open the database connection and execute the command
int
iMailAttachmentID
=
0
;
try
{
//
myConnection.Open();
myCommand.ExecuteNonQuery();
iMailAttachmentID
=
(
int
)SPSuccess.Value;
//
myConnection.Close();
}
catch
(Exception ex)
{
Console.Write(ex.Message);
return
-
1
;
}
return
iMailAttachmentID;
}
查看全文
相关阅读:
SQL SUBSTRING 函数
JS复制DOM元素文字内容
CSS中DIV只出现竖向滚动条且内容自动换行
Windows下sc create命令行添加/创建/修改服务
C# FTP删除文件以及文件夹
涨薪20%!听听这位资深机器学习面试官的内心独白
《Java从入门到放弃》JavaSE篇:程序结构
迷茫的程序员
技术与技术人员的价值
GitChat·人工智能 | 除了深度学习,机器翻译还需要啥?
原文地址:https://www.cnblogs.com/hanguoji/p/563843.html
最新文章
道德经帛书版
HashMap遍历,推荐使用entrySet()
Spring3+MyBatis3整合log4j无法输出SQL语句问题的解决
卷帘效果
spring mvc介绍只试图解析(转载)
exports 和 module.exports 的使用
javaScript es6 typeScript
package-lock.json的作用
知识点(六)
知识点(五)
热门文章
知识点(四)
css
如何解决 touchstart 事件与 click 事件的冲突(转自https://www.cnblogs.com/wangjae/p/8540238.html)
知识点(三)
知识点(二)
ORACLE 角色授权
JS获取屏幕分辨率以及当前对象大小等
C#接收WebSphere MQ中文乱码问题
C# FTP操作类(获取文件和文件夹列表)
C# 两个结构相同的类进行赋值
Copyright © 2011-2022 走看看