public override DBDataCollection ExcuteProcedure(string sp_name, bool isReturnDataSet, ref DBOParameterCollection dbp) { DBDataCollection rtn = new DBDataCollection(); rtn.IsSuccess = false; DataSetStd ds = new DataSetStd(); NpgsqlCommand dc = null;//new SqlCommand(p.StoreProcureName, this.sqlconn); if (this._s == DBStatus.Begin_Trans) { dc = new NpgsqlCommand(sp_name, this.conn, this.tran); } else { dc = new NpgsqlCommand(sp_name, this.conn); } //dc.CommandTimeout = 90; dc.CommandType = CommandType.StoredProcedure; dc.CommandTimeout = CommandTimeOut; FillParametersToCommand(dc, dbp); NpgsqlDataReader ddr = null; try { if (isReturnDataSet) { ddr = dc.ExecuteReader(); ds = DataSetStd.FillData(ddr); rtn.ReturnDataSet = ds; } else { dc.ExecuteNonQuery(); } //獲取返回值 foreach (SqlParameter sp in dc.Parameters) { if (sp.Direction == ParameterDirection.Output || sp.Direction == ParameterDirection.InputOutput || sp.Direction == ParameterDirection.ReturnValue) { rtn.SetValue(sp.ParameterName.Replace(ParameterFlagChar, ""), sp.Value); } } rtn.IsSuccess = true; } finally { if (ddr != null) { ddr.Close(); ddr.Dispose(); } dc.Dispose(); dc = null; } return(rtn); }
public override Data.DataSetStd Query(string sql, DBOParameterCollection dbp) { if (_s == DBStatus.Close) { DoOpen(); } OracleCommand cmd; DataSetStd ds = new DataSetStd(); OracleDataReader ddr = null; var sqlarr = ToSQLArray(sql); var index = 1; foreach (string s in sqlarr) { if (s.Trim() == "") { continue; } using (cmd = new OracleCommand(s, conn)) { try { //如果事務開啟,則使用事務的方式 if (this._s == DBStatus.Begin_Trans) { cmd.Transaction = this.tran; } //如果有參數 if (dbp != null) { FillParametersToCommand(cmd, dbp); } if (s.Trim().ToLower().StartsWith("select") || s.ToLower().IndexOf(" into ") < 0) { ddr = cmd.ExecuteReader(); ds.Tables.AddRange(DataSetStd.FillData(ddr).Tables); index++; } else { cmd.ExecuteNonQuery(); } } finally { cmd.Dispose(); cmd = null; } } } return(ds); }
public override DataSetStd Query(string sql, DBOParameterCollection dbp) { var newsql = ConvertSQL(sql); if (sqlcomm == null) { sqlcomm = new NpgsqlCommand(newsql, this.conn); sqlcomm.CommandTimeout = CommandTimeOut; } else { sqlcomm.CommandText = newsql; } //如果事務開啟,則使用事務的方式 if (this._s == DBStatus.Begin_Trans) { sqlcomm.Transaction = this.tran; } DataSetStd ds = new DataSetStd(); NpgsqlDataReader ddr = null; try { //如果有參數 if (dbp != null) { FillParametersToCommand(sqlcomm, dbp); } ddr = sqlcomm.ExecuteReader(); ds = DataSetStd.FillData(ddr); } //catch (Exception ex) //{ // Console.WriteLine(ex.Message); // throw ex; //} finally { if (ddr != null) { ddr.Close(); ddr.Dispose(); } sqlcomm.Dispose(); sqlcomm = null; } return(ds); }
public override DataSetStd Query(string sql, DBOParameterCollection dbp) { if (sqlcomm == null) { sqlcomm = new SqlCommand(sql, this.sqlconn); sqlcomm.CommandTimeout = 90; } else { sqlcomm.CommandText = sql; } //如果事務開啟,則使用事務的方式 if (this._s == DBStatus.Begin_Trans) { sqlcomm.Transaction = this.trans; } DataSetStd ds = new DataSetStd(); SqlDataReader ddr = null; try { //如果有參數 if (dbp != null) { FillParametersToCommand(sqlcomm, dbp); } ddr = sqlcomm.ExecuteReader(); ds = DataSetStd.FillData(ddr); } catch (Exception ex) { throw ex; } finally { if (ddr != null) { ddr.Close(); ddr.Dispose(); } sqlcomm.Cancel(); sqlcomm = null; } return(ds); }
public override DBDataCollection ExcuteProcedure(string sp_name, bool isReturnDataSet, ref DBOParameterCollection dbp) { DBDataCollection rtn = new DBDataCollection(); rtn.IsSuccess = false; if (_s == DBStatus.Close) { DoOpen(); } DataSetStd ds = new DataSetStd(); OracleCommand dc = null; OracleDataReader ddr = null; if (this._s == DBStatus.Begin_Trans) { dc = new OracleCommand(sp_name, conn); dc.Transaction = tran; } else { dc = new OracleCommand(sp_name, conn); } dc.CommandType = CommandType.StoredProcedure; FillParametersToCommand(dc, dbp); try { if (isReturnDataSet) { ddr = dc.ExecuteReader(); ds = DataSetStd.FillData(ddr); rtn.ReturnDataSet = ds; } else { dc.ExecuteNonQuery(); } //獲取返回值 foreach (OracleParameter sp in dc.Parameters) { if (sp.Direction == ParameterDirection.Output || sp.Direction == ParameterDirection.InputOutput || sp.Direction == ParameterDirection.ReturnValue) { rtn.SetValue(sp.ParameterName.Replace(":", ""), sp.Value); } } rtn.IsSuccess = true; } finally { if (ddr != null) { ddr.Close(); ddr.Dispose(); } dc.Dispose(); dc = null; } return(rtn); }