代碼
1 /// <summary>
2 /// 插入資料
3 /// </summary>
4 public void Insert(Users _users, IDbTransaction transaction)
5 {
6 //建立插入的SQL語句
7 StringBuilder strSql = new StringBuilder();
8 strSql.Append("Insert into T_USERS");
9 strSql.Append("(UserId,UserName)");
10 strSql.Append(" values ");
11 strSql.Append("(@UserId,@UserName)");
12
13 14 //建立插入參數數組
15 OracleParameter[] parameters = {
16
17 //主Id欄位
18 new OracleParameter("@UserId", OracleDbType.Varchar2,20),
19 //使用者名稱
20 new OracleParameter("@UserName", OracleDbType.Varchar2,20)
21 };
22 _users.UserId = BasicManage.GetSequences("T_USERS", 6, "YYXXXXXX");//這隻是一個返回序列的方法。
23 parameters[0].Value = _users.UserId;
24 parameters[1].Value = _users.UserName;
25
26 //執行SQL語句
27 //OracleConnection conn = BasicManage.GetConn();
28 try
29 {
30 BasicManage bm = new BasicManage();
31 bm.ExecuteSQL(transaction, strSql.ToString(), parameters);
32 33
34 }
35 catch (Exception ex)
36 {
37 transaction.Rollback();
38 transaction.Connection.Close();
39 throw ex;
40 }
41 } 大家看這樣一段代碼,在sql語句中 @UserId是在@UserName上面的,在Sqlserver裡面,下面的Parameters的順序,是不影響的,也就是只要參數對了,順序可以隨便。但如果在串連oracle的時候,兩個參數的位置絕對別錯,如果順序錯了,運行也不會報錯,只是 更新不上去資料,不知道是不是因為我的問題,反正是我把順序調正確了。記錄就更新成功了。一點小技巧。希望大家別在遇到這個問題排錯方面著急。