//Congraduation content:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="conectstring" value="Data Source=数据库名;User ID=用户名;Password=密码;Unicode=True"/>
</appSettings>
</configuration>
//Get connecting string from app.config
public static readonly string ConnectString =
System.Configuration.ConfigurationManager.AppSettings["conectstring"];
//Connontion
static ConnectDb()
{
ConnOracle = new OracleConnection(ConnectString);
try
{
ConnOracle.Open();
}
catch { }
}
//prepare a Command
/// <summary>
/// Internal function to prepare a command for execution by the database
/// </summary>
/// <param name="cmd">Existing command object</param>
/// <param name="conn">Database connection object </param>
/// <param name="cmdType">Command Type</param>
/// <param name="CmdText">Actual sql</param>
/// <param name="commandParameters">Parameters to bind to a command</param>
public static void PrepareCommand(OracleCommand cmd,OracleConnection conn, CommandType cmdType, string CmdText,
OracleTransaction tra =null,params OracleParameter[] commandParameters)
{
cmd.Connection = conn;
cmd.CommandType = cmdType;
cmd.CommandText = CmdText;
if(tra != null)
cmd.Transaction = tra;
if (commandParameters != null)
{
foreach (OracleParameter parm in commandParameters)
{
cmd.Parameters.Add(parm);
}
}
}
//Excute a Query which do not include a select
/// <summary>
/// Excute a database Query which does't include a select
/// </summary>
/// <param name="ConnctStr">Connecttion string to database</param>
/// <param name="cmdType">Command Type</param>
/// <param name="CmdText">actual sql</param>
/// <param name="commandParameters">Parameters to bind to Command</param>
/// <returns></returns>
public static int ExuteNonquery( CommandType cmdType, string CmdText,OracleTransaction tran,
params OracleParameter[] commandParameters)
{
//
OracleCommand cmd = new OracleCommand();
OracleConnection conn = ConnOracle;
try
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
PrepareCommand(cmd, conn, cmdType, CmdText, tran, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
tran.Commit();
return val;
}
catch
{
tran.Rollback();
conn.Close();
throw;
}
}