Mark;D

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

插入一条数据并获得返回该数据的主键。

 1 public int SendMessage(InternalMessage IM, string[] IMPStaffID)
 2         {
 3             //数据库连接属性 引用using System.Data.SqlClient;
 4             using (SqlConnection IDbCon = new SqlConnection(ConfigureHelp.Connection))
 5             {
 6                 //数据库连接
 7                 IDbCon.Open();
 8                 //开启事务。需引用using System.Data;
 9                 IDbTransaction _tran = IDbCon.BeginTransaction();
10                 
11                 //OUTPUT INSERTED.IMID :返回插入这条数据的主键IMID。
12                 string InsertIMsql = @"INSERT INTO InternalMessage(IMIsIncognito,IMType,IMObjectNum,IMContent,IMFile,IMIsLock,IMDelFlag,IMStaffID,IMDate) OUTPUT INSERTED.IMID  VALUES(@IMIsIncognito,@IMType,@IMObjectNum,@IMContent,@IMFile,@IMIsLock,@IMDelFlag,@IMStaffID,@IMDate)";
13                 
14                 string InsertIMPsql = @"INSERT INTO IMPermissions(IMPStaffID,InternalMessageID) VALUES(@IMPStaffID,@InternalMessageID)";
15                 try
16                 {
17                     var IMID = IDbCon.ExecuteScalar<long>(InsertIMsql, IM,_tran);
18 
19                     //将数组循环添加到imp对象中
20                     IList<IMPermissions> imp = new List<IMPermissions>();
21                     for (int i = 0; i < IMPStaffID.Length; i++)
22                     {
23                         IMPermissions imps = new IMPermissions();
24                         long tId = 0;
25                         if (long.TryParse(IMPStaffID[i], out tId))
26                         {
27                             imps.IMPStaffID = tId;
28                             imps.InternalMessageID = IMID;
29                             imp.Add(imps);
30                         };
31                     }
32 
33                     if(IMID > 0)
34                     {
35                         //imp是个对象,同时插入多条数据
36                         var IMPcount = IDbCon.Execute(InsertIMPsql, imp, _tran);
37                         if(IMPcount >0)
38                         {
39                             _tran.Commit();
40                             return 1;
41                         }
42                     }
43                     _tran.Rollback();
44                     return 0;
45 
46                 }
47                 catch (Exception ex)
48                 {
49                     UtilityHelp.WriteLog(ex, ex.ToString());
50                     return -1;
51                 }
52             }
53         }

 

posted on 2017-08-15 14:52  Mark;D  阅读(335)  评论(0编辑  收藏  举报