日期:2014-05-17 浏览次数:20707 次
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