代码
 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的时候,两个参数的位置绝对别错,
如果顺序错了,运行也不会报错,只是 更新不上去数据,不知道是不是因为我的问题,反正是我把顺序调正确了。记录就更新成功了。
一点小技巧。希望大家别在遇到这个问题排错方面着急。