日期:2014-05-17 浏览次数:20638 次
using System.Data.OleDb; using System.Data.Odbc; using System.Configuration; //方法 public static string GetPK(string TableName) { string pk = ""; string sql = "select " + TableName + ".nextval from dual"; OleDbConnection con = new OleDbConnection(MyConnString); OleDbCommand cmd = new OleDbCommand(sql, con); con.Open(); OleDbDataReader odr = cmd.ExecuteReader(); if (odr.Read()) { pk = odr["NEXTVAL"].ToString(); } con.Close(); return pk; }
------解决方案--------------------
一个建议是链接对象使用using,用完就释放掉。
另外一个有点搞不清楚,返回void的查询有什么用?专门用于创建表,还是专门用于Update?
还有一个,难道使用的时候每次都要传递connectionString?很不方便哦。
------解决方案--------------------
string connectionString
是用来干嘛的?
楼主你还是运行下才知道有没有问题啊
------解决方案--------------------
/// <summary> /// 数据访问帮助类 /// </summary> public class DBHelper { private OracleConnection _con; /// <summary> /// 连接对象字符串 /// </summary> public OracleConnection con { get { if (_con == null) //从配置文件读取连接字符串 _con = new OracleConnection("Password=tiger;User ID=scott;Data Source=scce"); return _con; } } /// <summary> /// 增加、删除、修改 或存储过程 /// </summary> /// <param name="sql">SQL 语句</param> /// <param name="type">指定SQL语句类型</param> /// <param name="lists">存储过程元素数组,最后一个为传出参数</param> /// <returns>返回结果</returns> public int ExecuteNonQuery(string sql, CommandType type, params OracleParameter[] lists) { //初始化结果 int result = 0; //创建命令对象 OracleCommand cmd = new OracleCommand(); //指定命令对象的连接池 cmd.Connection = con; //指定命令对象的SQL语句 cmd.Com