代码
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
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
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 }
34 }
35 catch (Exception ex)
36 {
37 transaction.Rollback();
38 transaction.Connection.Close();
39 throw ex;
40 }
41 }
大家看这样一段代码,在sql语句中 @UserId是在@UserName上面的,
在Sqlserver里面,下面的Parameters的顺序,是不影响的,也就是只要参数对了,顺序可以随便。
但如果在连接oracle的时候,两个参数的位置绝对别错,
如果顺序错了,运行也不会报错,只是 更新不上去数据,不知道是不是因为我的问题,反正是我把顺序调正确了。记录就更新成功了。
一点小技巧。希望大家别在遇到这个问题排错方面着急。