本文整理汇总了C#中System.Data.Odbc.OdbcConnection.BeginTransaction方法的典型用法代码示例。如果您正苦于以下问题:C# OdbcConnection.BeginTransaction方法的具体用法?C# OdbcConnection.BeginTransaction怎么用?C# OdbcConnection.BeginTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Odbc.OdbcConnection
的用法示例。
在下文中一共展示了OdbcConnection.BeginTransaction方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Test_Transaction
/// <summary>
/// Test OdbcTransaction class
/// </summary>
public static void Test_Transaction()
{
using (OdbcConnection conn = new OdbcConnection())
{
OdbcTransaction transaction = null;
conn.ConnectionString = TestCases.connString;
conn.Open();
TestCases.ExecuteSQL("drop table if exists t", conn);
transaction = conn.BeginTransaction();
string sql = "create table t(idx integer)";
using (OdbcCommand command = new OdbcCommand(sql, conn))
{
command.Transaction = transaction;
command.ExecuteNonQuery();
}
int tablesCount = GetTablesCount("t", conn, transaction);
Assert.IsTrue(tablesCount == 1);
transaction.Rollback();
//Verify the table does not exist
tablesCount = GetTablesCount("t", conn, transaction);
Assert.IsTrue(tablesCount == 0);
transaction = conn.BeginTransaction();
sql = "create table t(idx integer)";
using (OdbcCommand command = new OdbcCommand(sql, conn))
{
command.Transaction = transaction;
command.ExecuteNonQuery();
}
tablesCount = GetTablesCount("t", conn, transaction);
Assert.IsTrue(tablesCount == 1);
transaction.Commit();
tablesCount = GetTablesCount("t", conn, transaction);
Assert.IsTrue(tablesCount == 1);
transaction = conn.BeginTransaction();
TestCases.ExecuteSQL("drop table t", conn, transaction);
transaction.Commit();
tablesCount = GetTablesCount("t", conn);
Assert.IsTrue(tablesCount == 0);
}
}
示例2: Execute
public override IEnumerable<Row> Execute(IEnumerable<Row> rows)
{
string s = ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString;
OdbcConnection myConnection = new OdbcConnection(s);
myConnection.Open();
OdbcTransaction tran = myConnection.BeginTransaction();
string command = "SELECT * FROM WREV.PEDTFRM WHERE FRM_NUMCLIEN = '00930481'";
//Strange behaviour - low values are properly transformed only if this constructor is used
//If one of parameter are added later, connection, transaction it won't work properly
OdbcCommand cmd = new OdbcCommand(command, myConnection, tran);
List<Row> result = new List<Row>();
OdbcDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Row row = new Row();
for (int i = 0; i < reader.FieldCount; i++)
{
row[reader.GetName(i)] = reader.GetValue(i);
}
result.Add(row);
}
reader.Close();
tran.Commit();
myConnection.Close();
return result;
}
示例3: bntGuardar_Click
private void bntGuardar_Click(object sender, RoutedEventArgs e)
{
try
{
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
System.Data.Odbc.OdbcConnection myConn = new System.Data.Odbc.OdbcConnection();
myConn.ConnectionString = ((Menu)this.Owner).sConexion;
myConn.Open();
//Elimina
string myNonQuery = "DELETE FROM HHc_Version Where CODIGO_AGENCIA = ? AND VERSION = ? ";
OdbcCommand myCommand = new OdbcCommand(myNonQuery, myConn);
myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse((string)cmbAgencia.SelectedValue);
myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = (string)cmbVersion.SelectedValue;
myCommand.ExecuteNonQuery();
OdbcTransaction myTrans = myConn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
//Insertar
for (int i = 0; i < lstAgregados.Items.Count; i++)
{
myNonQuery = "INSERT INTO HHc_Version VALUES (?, ?, ?)";
myCommand = new OdbcCommand(myNonQuery, myConn);
myCommand.Transaction = myTrans;
myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse((string)cmbAgencia.SelectedValue);
myCommand.Parameters.Add("ID_RUTA", OdbcType.VarChar).Value = (string)((ListBoxItem)lstAgregados.Items.GetItemAt(i)).Content;
myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = (string)cmbVersion.SelectedValue;
myCommand.ExecuteNonQuery();
}
myTrans.Commit();
}
catch (Exception ex)
{
ITCMessageBox.Show((Window)this, ex.Message, "Error!");
myTrans.Rollback();
}
ITCMessageBox.Show(this, "Modificacion de rutas exitosa", "Mensaje!");
myConn.Close();
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
catch (Exception ex)
{
ITCMessageBox.Show(this, "Error al intentar ligar las rutas", "Error!");
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
}
示例4: Enviar
private void Enviar()
{
System.Data.Odbc.OdbcConnection myConn = new System.Data.Odbc.OdbcConnection();
string sVer = (string)txtVersion.Text;
string sAge = (string)txtAgencia.Text;
string sDis = (string)cmbDispo.SelectedValue;
int iEsImpar = 0;
string sArchivo = string.Empty;
// VALIDA QUE NO EXISTAN REGISTROS CON ESA AGENCIA, VERSION Y RUTA
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
try
{
myConn.ConnectionString = sConexion;
myConn.Open();
OdbcTransaction myTrans = myConn.BeginTransaction();
string myNonQuery2 = "set textsize 2147483647";
OdbcCommand myCommand2 = new OdbcCommand(myNonQuery2, myConn);
myCommand2.Transaction = myTrans;
i = myCommand2.ExecuteNonQuery();
string myQuery = "SELECT ORDEN FROM HHc_ArchivosVersion WHERE CODIGO_AGENCIA = ? AND VERSION = ? AND TIPO_DISPOSITIVO = ?";
OdbcCommand myOdbcCommand = new OdbcCommand(myQuery);
myOdbcCommand.Connection = myConn;
myOdbcCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
myOdbcCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
myOdbcCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = sDis;
myOdbcCommand.Transaction = myTrans;
OdbcDataReader myReader = myOdbcCommand.ExecuteReader(CommandBehavior.CloseConnection);
if (myReader.Read())
{
string sMensaje = "ERROR!!! \nLa Agencia \"" + sAge + "\" \nLa Version \"" + sVer + "\"\nY el Dispositivo \"" + (string)cmbDispo.SelectedValue + "\" \nLA VVERSION YA EXISTE EN LA BD";
ITCMessageBox.Show((Window)this, sMensaje, "Error!");
return;
}
//INSERTA LA VERSION
int orden = 1;
foreach (Archivo aFile in lArchivos)
{
byte[] bFile = null;
System.IO.FileStream fLoad = null;
string sFname = System.IO.Path.GetFileName(aFile.sName);
if ((sFname != "") && (System.IO.Path.GetExtension(sFname) != ""))
{
fLoad = System.IO.File.Open(aFile.sName, FileMode.Open, FileAccess.Read);
bFile = new byte[fLoad.Length];
fLoad.Read(bFile, 0, (int)fLoad.Length);
fLoad.Close();
sArchivo = BitConverter.ToString(bFile);
sArchivo = sArchivo.Replace("-", "");
sArchivo = "0x" + sArchivo;
if ((bFile.Length % 2) == 1)
{
sArchivo += "00";
iEsImpar = 1;
}
}
else
{
sArchivo = "NULL";
}
string myNonQuery = "INSERT INTO HHc_ArchivosVersion VALUES (?, ?, ?, ?, ?, ?, ?, &, ?)";
myNonQuery = myNonQuery.Replace("&", sArchivo);
OdbcCommand myCommand = new OdbcCommand(myNonQuery, myConn);
myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = sDis;
myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = orden;
myCommand.Parameters.Add("NOMBRE", OdbcType.VarChar).Value = aFile.sShort;
myCommand.Parameters.Add("PATH_DESTINO", OdbcType.VarChar).Value = aFile.sDestino;
myCommand.Parameters.Add("ACCION", OdbcType.Int).Value = aFile.option;
//myCommand.Parameters.Add("CONTENIDO", OdbcType.Binary).Value = bFile;
myCommand.Parameters.Add("ESIMPAR", OdbcType.Int).Value = iEsImpar;
myCommand.Transaction = myTrans;
i = myCommand.ExecuteNonQuery();
orden++;
}
myTrans.Commit();
myConn.Close();
i = 1;
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
catch (Exception ex)
{
string m = ex.Message;
i = 0;
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
}
示例5: RunOdbcTest
static void RunOdbcTest ()
{
if (Environment.GetEnvironmentVariable ("MONO_TESTS_ODBC") == null)
return;
OdbcConnection conn = new OdbcConnection (CreateOdbcConnectionString ());
conn.Open ();
OdbcCommand cmd = new OdbcCommand (drop_table, conn);
cmd.ExecuteNonQuery ();
try {
using (OdbcTransaction trans = conn.BeginTransaction ()) {
cmd = new OdbcCommand (create_table, conn, trans);
cmd.ExecuteNonQuery ();
trans.Commit ();
Assert.IsNull (trans.Connection, "Connection");
try {
trans.Commit ();
Assert.Fail ("#A1");
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
Assert.IsNull (ex.InnerException, "#A3");
Assert.IsNotNull (ex.Message, "#A4");
Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#A5");
}
try {
trans.Rollback ();
Assert.Fail ("#B1");
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
Assert.IsNull (ex.InnerException, "#B3");
Assert.IsNotNull (ex.Message, "#B4");
Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#B5");
}
try {
Assert.Fail ("#C1: " + trans.IsolationLevel);
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNull (ex.InnerException, "#C3");
Assert.IsNotNull (ex.Message, "#C4");
Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#C5");
}
}
cmd = new OdbcCommand (insert_data, conn, null);
cmd.ExecuteNonQuery ();
} finally {
cmd = new OdbcCommand (drop_table, conn);
cmd.ExecuteNonQuery ();
}
try {
using (OdbcTransaction trans = conn.BeginTransaction ()) {
cmd = new OdbcCommand (create_table, conn, trans);
cmd.ExecuteNonQuery ();
trans.Rollback ();
Assert.IsNull (trans.Connection, "Connection");
try {
trans.Rollback ();
Assert.Fail ("#D1");
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
Assert.IsNull (ex.InnerException, "#D3");
Assert.IsNotNull (ex.Message, "#D4");
Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#D5");
}
try {
trans.Commit ();
Assert.Fail ("#E1");
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
Assert.IsNull (ex.InnerException, "#E3");
Assert.IsNotNull (ex.Message, "#E4");
Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#E5");
}
try {
Assert.Fail ("#F1: " + trans.IsolationLevel);
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
Assert.IsNull (ex.InnerException, "#F3");
Assert.IsNotNull (ex.Message, "#F4");
Assert.AreEqual ("This OdbcTransaction has completed; it is no longer usable.", ex.Message, "#F5");
}
}
cmd = new OdbcCommand (create_table, conn, null);
cmd.ExecuteNonQuery ();
} finally {
cmd = new OdbcCommand (drop_table, conn);
//.........这里部分代码省略.........
示例6: AddUsersToRoles
//
// System.Web.Security.RoleProvider methods.
//
//
// RoleProvider.AddUsersToRoles
//
public override void AddUsersToRoles(string[] usernames, string[] rolenames)
{
foreach (string rolename in rolenames)
{
if (!RoleExists(rolename))
{
throw new ProviderException("Role name not found.");
}
}
foreach (string username in usernames)
{
if (username.Contains(","))
{
throw new ArgumentException("User names cannot contain commas.");
}
foreach (string rolename in rolenames)
{
if (IsUserInRole(username, rolename))
{
throw new ProviderException("User is already in role.");
}
}
}
OdbcConnection conn = new OdbcConnection(connectionString);
OdbcCommand cmd = new OdbcCommand("INSERT INTO UsersInRoles " +
" (Username, Rolename, ApplicationName) " +
" Values(?, ?, ?)", conn);
OdbcParameter userParm = cmd.Parameters.Add("@Username", OdbcType.VarChar, 255);
OdbcParameter roleParm = cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255);
cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;
OdbcTransaction tran = null;
try
{
conn.Open();
tran = conn.BeginTransaction();
cmd.Transaction = tran;
foreach (string username in usernames)
{
foreach (string rolename in rolenames)
{
userParm.Value = username;
roleParm.Value = rolename;
cmd.ExecuteNonQuery();
}
}
tran.Commit();
}
catch (OdbcException e)
{
try
{
tran.Rollback();
}
catch { }
if (WriteExceptionsToEventLog)
{
WriteToEventLog(e, "AddUsersToRoles");
}
else
{
throw e;
}
}
finally
{
conn.Close();
}
}
示例7: DeleteRole
//
// RoleProvider.DeleteRole
//
public override bool DeleteRole(string rolename, bool throwOnPopulatedRole)
{
if (!RoleExists(rolename))
{
throw new ProviderException("Role does not exist.");
}
if (throwOnPopulatedRole && GetUsersInRole(rolename).Length > 0)
{
throw new ProviderException("Cannot delete a populated role.");
}
OdbcConnection conn = new OdbcConnection(connectionString);
OdbcCommand cmd = new OdbcCommand("DELETE FROM Roles " +
" WHERE Rolename = ? AND ApplicationName = ?", conn);
cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;
OdbcCommand cmd2 = new OdbcCommand("DELETE FROM UsersInRoles " +
" WHERE Rolename = ? AND ApplicationName = ?", conn);
cmd2.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
cmd2.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;
OdbcTransaction tran = null;
try
{
conn.Open();
tran = conn.BeginTransaction();
cmd.Transaction = tran;
cmd2.Transaction = tran;
cmd2.ExecuteNonQuery();
cmd.ExecuteNonQuery();
tran.Commit();
}
catch (OdbcException e)
{
try
{
tran.Rollback();
}
catch { }
if (WriteExceptionsToEventLog)
{
WriteToEventLog(e, "DeleteRole");
return false;
}
else
{
throw e;
}
}
finally
{
conn.Close();
}
return true;
}
示例8: btnAgregar_Click
private void btnAgregar_Click(object sender, RoutedEventArgs e)
{
int iTotal = lstArchivos.Items.Count;
int iSelec = lstArchivos.SelectedIndex + 1;
int iEsImpar = 0;
Archivos view = new Archivos();
view.Owner = this;
view.bMain = true;
view.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
view.ShowDialog();
if (!bArchivos)
{
ITCMessageBox.Show(this,"No agregaste Archivos","Error!");
return;
}
int iTadd = lArchivos.Count;
OdbcTransaction myTrans = null;
this.IsEnabled = false;
System.Threading.Thread t = new System.Threading.Thread(Sending);
t.SetApartmentState(System.Threading.ApartmentState.STA);
t.Start(getBase());
try
{
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
System.Data.Odbc.OdbcConnection myConn = new System.Data.Odbc.OdbcConnection();
string sVer = (string)cmbVersion.SelectedValue;
string sAge = (string)cmbAgencia.SelectedValue;
string sDis = (string)cmbDispo.SelectedValue;
string sArchivo = string.Empty;
myConn.ConnectionString = ((Menu)this.Owner).sConexion;
myConn.Open();
string myNonQuery;
OdbcCommand myCommand;
myTrans = myConn.BeginTransaction();
for (int i = iTotal; i >= iSelec; i--)
{
myNonQuery = "UPDATE HHc_ArchivosVersion SET ORDEN = ? WHERE CODIGO_AGENCIA = ? AND VERSION = ? AND TIPO_DISPOSITIVO = ? AND ORDEN = ?";
myCommand = new OdbcCommand(myNonQuery, myConn);
myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = i + iTadd;
myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = sDis;
myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = i;
myCommand.Transaction = myTrans;
myCommand.ExecuteNonQuery();
}
int orden = iSelec;
foreach (Archivo aFile in lArchivos)
{
byte[] bFile = null;
System.IO.FileStream fLoad = null;
string sFname = System.IO.Path.GetFileName(aFile.sName);
if ((sFname != "") && (System.IO.Path.GetExtension(sFname) != ""))
{
fLoad = System.IO.File.Open(aFile.sName, FileMode.Open, FileAccess.Read);
bFile = new byte[fLoad.Length];
fLoad.Read(bFile, 0, (int)fLoad.Length);
fLoad.Close();
sArchivo = BitConverter.ToString(bFile);
sArchivo = sArchivo.Replace("-", "");
sArchivo = "0x" + sArchivo;
if ((bFile.Length % 2) == 1)
{
sArchivo += "00";
iEsImpar = 1;
}
}
else
{
sArchivo = "NULL";
}
myNonQuery = "INSERT INTO HHc_ArchivosVersion VALUES (?, ?, ?, ?, ?, ?, ?, &, ?)";
myNonQuery = myNonQuery.Replace("&", sArchivo);
myCommand = new OdbcCommand(myNonQuery, myConn);
myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = (string)cmbDispo.SelectedValue;
myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = orden;
myCommand.Parameters.Add("NOMBRE", OdbcType.VarChar).Value = aFile.sShort;
myCommand.Parameters.Add("PATH_DESTINO", OdbcType.VarChar).Value = aFile.sDestino;
myCommand.Parameters.Add("ACCION", OdbcType.Int).Value = aFile.option;
//myCommand.Parameters.Add("CONTENIDO", OdbcType.Binary).Value = bFile;
myCommand.Parameters.Add("ESIMPAR", OdbcType.Int).Value = iEsImpar;
myCommand.Transaction = myTrans;
myCommand.ExecuteNonQuery();
lstArchivos.Items.Insert(orden - 1, aFile);
orden++;
}
myTrans.Commit();
myConn.Close();
t.Abort();
ITCMessageBox.Show(this, "Archivos modificados", "Mensaje!");
//.........这里部分代码省略.........
示例9: Transaction
/// <summary>
/// 事务
/// </summary>
/// <param name="transt">事务SQL语句和参数对应建构体</param>
/// <param name="conn">SQL连接</param>
/// <returns></returns>
public bool Transaction(List<OdbcTransCollection> transt, OdbcConnection conn)
{
OdbcTransaction tran = conn.BeginTransaction();
int count = 0;
try
{
foreach (OdbcTransCollection tc in transt)
{
using (OdbcCommand comm = conn.CreateCommand())
{
comm.CommandText = tc.StrSQL;
comm.CommandTimeout = this.CommandTimeout;
comm.Transaction = tran;
foreach (OdbcParameter parameter in tc.Parameters)
{
comm.Parameters.Add(parameter);
}
count += comm.ExecuteNonQuery();
}
}
tran.Commit();
return count > 0 ? true : false;
}
catch (Exception err)
{
tran.Rollback();
throw err;
}
}
示例10: ExecuteSqlTranWithIndentity
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的OdbcParameter[])</param>
public static void ExecuteSqlTranWithIndentity(Hashtable SQLStringList)
{
using (OdbcConnection conn = new OdbcConnection(connectionString))
{
conn.Open();
using (OdbcTransaction trans = conn.BeginTransaction())
{
OdbcCommand cmd = new OdbcCommand();
try
{
int indentity = 0;
//循环
foreach (DictionaryEntry myDE in SQLStringList)
{
string cmdText = myDE.Key.ToString();
OdbcParameter[] cmdParms = (OdbcParameter[])myDE.Value;
foreach (OdbcParameter q in cmdParms)
{
if (q.Direction == ParameterDirection.InputOutput)
{
q.Value = indentity;
}
}
PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
foreach (OdbcParameter q in cmdParms)
{
if (q.Direction == ParameterDirection.Output)
{
indentity = Convert.ToInt32(q.Value);
}
}
cmd.Parameters.Clear();
}
trans.Commit();
}
catch
{
trans.Rollback();
throw;
}
}
}
}
示例11: ExecuteSqlTran
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public void ExecuteSqlTran(ArrayList SQLStringList)
{
//using (SqlConnection conn = new SqlConnection(connectionString))
using (OdbcConnection conn = new OdbcConnection(connectionString))
{
conn.Open();
//SqlCommand cmd = new SqlCommand();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection=conn;
//SqlTransaction tx=conn.BeginTransaction();
OdbcTransaction tx = conn.BeginTransaction();
cmd.Transaction=tx;
try
{
for(int n=0;n<SQLStringList.Count;n++)
{
string strsql=SQLStringList[n].ToString();
if (strsql.Trim().Length>1)
{
cmd.CommandText=strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
示例12: InsertSociosDBISAM
/// <summary>
/// Inserta el socio en BD DBISAM.
/// </summary>
/// <param name="id"></param>
/// <param name="nombre"></param>
public static void InsertSociosDBISAM(string id, string nombre)
{
OdbcTransaction transaction = null;
string errorMsg = "";
string connectionString = "";
bool activo = true;
int zero = 0;
string parameterChar = "";
string queryStringCliente = "";
string queryStringProveedor = "";
string queryCliente = "";
string queryProveedor = "";
try
{
connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["A2DBISAM"].ConnectionString;
parameterChar = System.Configuration.ConfigurationManager.AppSettings["A2DBISAM_ParameterChar"];
queryStringCliente = System.Configuration.ConfigurationManager.AppSettings["A2DBISAM_InsertarCliente"];
queryStringProveedor = System.Configuration.ConfigurationManager.AppSettings["A2DBISAM_InsertarProveedor"];
queryCliente = string.Format(queryStringCliente, parameterChar);
queryProveedor = string.Format(queryStringProveedor, parameterChar);
}
catch (Exception ex)
{
errorMsg = string.Format("Error al preparar conexion con DBISAM. ConnectionString: {0} - SQLInsertCliente: {1} - SQLInsertProveedor: {2}", connectionString, queryCliente, queryProveedor);
log.Error(errorMsg, ex);
return;
}
try
{
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
OdbcCommand myCommandCliente = new OdbcCommand(queryCliente, connection);
myCommandCliente.Parameters.Clear();
myCommandCliente.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandCliente.Parameters.Add(new OdbcParameter { Value = nombre, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandCliente.Parameters.Add(new OdbcParameter { Value = activo, DbType = DbType.Boolean, Direction = ParameterDirection.Input });
myCommandCliente.Parameters.Add(new OdbcParameter { Value = zero, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandCliente.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandCliente.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
OdbcCommand myCommandProveedor = new OdbcCommand(queryProveedor, connection);
myCommandProveedor.Parameters.Clear();
myCommandProveedor.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandProveedor.Parameters.Add(new OdbcParameter { Value = nombre, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandProveedor.Parameters.Add(new OdbcParameter { Value = activo, DbType = DbType.Boolean, Direction = ParameterDirection.Input });
myCommandProveedor.Parameters.Add(new OdbcParameter { Value = zero, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandProveedor.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
myCommandProveedor.Parameters.Add(new OdbcParameter { Value = id, DbType = DbType.String, Direction = ParameterDirection.Input });
connection.Open();
transaction = connection.BeginTransaction();
myCommandCliente.Transaction = transaction;
myCommandProveedor.Transaction = transaction;
myCommandCliente.ExecuteNonQuery();
myCommandProveedor.ExecuteNonQuery();
transaction.Commit();
}
}
catch (Exception ex)
{
if (transaction != null)
transaction.Rollback();
errorMsg = string.Format("Error al obtener socios desde DBISAM. ConnectionString: {0} - SQLInsertCliente: {1} - SQLInsertProveedor: {2}", connectionString, queryCliente, queryProveedor);
log.Error(errorMsg, ex);
}
}
示例13: SaveQuote
public static void SaveQuote(BusinessObjects.Quote q)
{
string sql=string.Empty;
if (q.ID <= 0)
{
sql = @"Insert into QUOTES_DAT ([SHIPPER_NAME],[SHIPPER],[SHIPPER_CONTACT],[SHIPPER_PHONE],[SHIPPER_FAX]
,[P_O_NUMBER],[PLR],[SUPPLIER_STATE],[SUPPLIER_ZIP_CODE],[POL],[POD]
,[FinalDestino],[CONSIGNEE_ZIP_CODE],[CONSIGNEE_COUNTRY],[MOVE_TYPE],[PAYMENT],[BUS_LINE],[Incoterms]
,[INCOTermsLocation],[EFFECTIVE_DATE],[EXPIRATION_DATE],[QuotedBy],[CONTROLLER],[CARRIER]
,[Voyage],[Vessel],[ContainerHandeling])
values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
}
else
{
sql = string.Format(@"Update QUOTES_DAT SET [SHIPPER_NAME]=?,[SHIPPER]=?,[SHIPPER_CONTACT]=?,[SHIPPER_PHONE]=?,[SHIPPER_FAX]=?
,[P_O_NUMBER]=?,[PLR]=?,[SUPPLIER_STATE]=?,[SUPPLIER_ZIP_CODE]=?,[POL]=?,[POD]=?
,[FinalDestino]=?,[CONSIGNEE_ZIP_CODE]=?,[CONSIGNEE_COUNTRY]=?,[MOVE_TYPE]=?,[PAYMENT]=?,[BUS_LINE]=?,[INCOTerms]=?
,[INCOTermsLocation]=?,[EFFECTIVE_DATE]=?,[EXPIRATION_DATE]=?,[QuotedBy]=?,[CONTROLLER]=?,[CARRIER]=?
,[Voyage]=?,[Vessel]=?,[ContainerHandeling]=?
Where ID={0}", q.ID);
}
using (OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.IESDBConn))
{
OdbcCommand cmd = new OdbcCommand(sql,conn);
cmd.Parameters.Add(new OdbcParameter("@Customer", q.Customer));
cmd.Parameters.Add(new OdbcParameter("@CustomerCode", q.CustomerCode));
cmd.Parameters.Add(new OdbcParameter("@CustomerContact", q.CustomerContact));
cmd.Parameters.Add(new OdbcParameter("@CustomerPhone", q.CustomerPhone));
cmd.Parameters.Add(new OdbcParameter("@CustomerFax", q.CustomerFax));
cmd.Parameters.Add(new OdbcParameter("@CustomerReferenceNo", q.CustomerReferenceNo));
cmd.Parameters.Add(new OdbcParameter("@PickupCity", q.PickupCity));
cmd.Parameters.Add(new OdbcParameter("@CustomerState", q.CustomerState));
cmd.Parameters.Add(new OdbcParameter("@CustomerZip", q.CustomerZip));
cmd.Parameters.Add(new OdbcParameter("@PortOfLoad", q.PortOfLoad));
cmd.Parameters.Add(new OdbcParameter("@PortOfDispatch", q.PortOfDispatch));
cmd.Parameters.Add(new OdbcParameter("@FinalDestination", q.FinalDestination));
cmd.Parameters.Add(new OdbcParameter("@DestinationZip", q.DestinationZip));
cmd.Parameters.Add(new OdbcParameter("@DestinationCounty", q.DestinationCountry));
cmd.Parameters.Add(new OdbcParameter("@TypeOfMove", q.TypeOfMove));
cmd.Parameters.Add(new OdbcParameter("@Division", q.Division));
cmd.Parameters.Add(new OdbcParameter("@Businessline", q.Businessline));
cmd.Parameters.Add(new OdbcParameter("@INCOTerms", q.INCOTerms));
cmd.Parameters.Add(new OdbcParameter("@INCOTermsLocation", q.INCOTermsLocation));
cmd.Parameters.Add(new OdbcParameter("@Effectivdate", q.Effectivdate));
cmd.Parameters.Add(new OdbcParameter("@ExpirationDate", q.ExpirationDate));
cmd.Parameters.Add(new OdbcParameter("@QuotedBy", q.QuotedBy));
cmd.Parameters.Add(new OdbcParameter("@SalesRep", q.SalesRep));
cmd.Parameters.Add(new OdbcParameter("@PreferredCarrier", q.PreferredCarrier));
cmd.Parameters.Add(new OdbcParameter("@Voyage", q.Voyage));
cmd.Parameters.Add(new OdbcParameter("@Vessel", q.Vessel));
cmd.Parameters.Add(new OdbcParameter("@ContainerHandling", q.ContainerHandling));
conn.Open();
OdbcTransaction trans = conn.BeginTransaction();
cmd.Transaction = trans;
try
{
cmd.ExecuteNonQuery();
foreach (BusinessObjects.Container c in q.Containers)
{
SaveContainer(cmd, c, q.QuoteNumber);
}
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
}
}
示例14: SaveClient
public static void SaveClient(BusinessObjects.Client c)
{
string sql = string.Empty;
using (OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.IESDBConn))
{
sql = string.Format(@"select 1 from Client_DAT where ID='{0}'", c.ClientID);
OdbcCommand cmd = new OdbcCommand(sql, conn);
conn.Open();
if (cmd.ExecuteScalar()!=null)
{
sql = string.Format(@"Update QUOTES_DAT SET [ID]=?,[Type]=?,[Name]=?,[Contact]=?,[Phone]=?,[Fax]=?,[ReferenceNo]=?
Where ID={0}", c.ClientID);
}
else
{
sql = @"Insert into Client_DAT ([ID],[Type],[Name],[Contact],[Phone],[Fax],[ReferenceNo])
values (?,?,?,?,?,?,?)";
}
cmd.CommandText = sql;
cmd.Parameters.Add(new OdbcParameter("@ID", c.ClientID));
cmd.Parameters.Add(new OdbcParameter("@Type", c.Type));
cmd.Parameters.Add(new OdbcParameter("@Name", c.Name));
cmd.Parameters.Add(new OdbcParameter("@Contact", c.Contact));
cmd.Parameters.Add(new OdbcParameter("@Phone", c.Phone));
cmd.Parameters.Add(new OdbcParameter("@Fax", c.Fax));
cmd.Parameters.Add(new OdbcParameter("@ReferenceNo", c.ReferenceNo));
OdbcTransaction trans = conn.BeginTransaction();
cmd.Transaction = trans;
try
{
cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
}
}
示例15: Main
static int Main ()
{
if (Environment.GetEnvironmentVariable ("MONO_TESTS_ODBC") == null)
return 0;
OdbcConnection conn = new OdbcConnection (CreateConnectionString ());
conn.Open ();
#if !MONO
IsolationLevel level = GetIsolationLevel (conn, null);
Assert.AreEqual (IsolationLevel.ReadCommitted, level, "#A");
#endif
ChangeIsolationLevel (conn, null, "SERIALIZABLE");
#if !MONO
level = GetIsolationLevel (conn, null);
Assert.AreEqual (IsolationLevel.Serializable, level, "#B");
#endif
OdbcTransaction trans = conn.BeginTransaction ();
#if !MONO
level = GetIsolationLevel (conn, trans);
#if NET_2_0
Assert.AreEqual (IsolationLevel.Serializable, level, "#C1");
#else
Assert.AreEqual (IsolationLevel.ReadCommitted, level, "#C1");
#endif
#endif
Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#C2");
ChangeIsolationLevel (conn, trans, "REPEATABLE READ");
#if !MONO
level = GetIsolationLevel (conn, trans);
Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#C3");
#endif
Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#C4");
trans.Rollback ();
#if !MONO
level = GetIsolationLevel (conn, null);
Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#D");
#endif
trans = conn.BeginTransaction (IsolationLevel.Unspecified);
#if !MONO
level = GetIsolationLevel (conn, trans);
Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#E1");
#endif
Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#E2");
ChangeIsolationLevel (conn, trans, "SERIALIZABLE");
#if !MONO
level = GetIsolationLevel (conn, trans);
Assert.AreEqual (IsolationLevel.Serializable, level, "#E3");
#endif
Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#E4");
trans.Rollback ();
ChangeIsolationLevel (conn, null, "REPEATABLE READ");
trans = conn.BeginTransaction (IsolationLevel.Unspecified);
#if !MONO
level = GetIsolationLevel (conn, trans);
Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#F1");
#endif
ChangeIsolationLevel (conn, trans, "READ UNCOMMITTED");
#if !MONO
level = GetIsolationLevel (conn, trans);
Assert.AreEqual (IsolationLevel.ReadUncommitted, level, "#F3");
#endif
Assert.AreEqual (IsolationLevel.ReadCommitted, trans.IsolationLevel, "#F4");
trans.Rollback ();
#if !MONO
level = GetIsolationLevel (conn, null);
Assert.AreEqual (IsolationLevel.ReadUncommitted, level, "#G");
#endif
trans = conn.BeginTransaction (IsolationLevel.RepeatableRead);
#if !MONO
level = GetIsolationLevel (conn, trans);
Assert.AreEqual (IsolationLevel.RepeatableRead, level, "#H1");
#endif
Assert.AreEqual (IsolationLevel.RepeatableRead, trans.IsolationLevel, "#H2");
ChangeIsolationLevel (conn, trans, "SERIALIZABLE");
#if !MONO
level = GetIsolationLevel (conn, trans);
Assert.AreEqual (IsolationLevel.Serializable, level, "#H3");
#endif
Assert.AreEqual (IsolationLevel.RepeatableRead, trans.IsolationLevel, "#H4");
trans.Rollback ();
#if !MONO
level = GetIsolationLevel (conn, null);
Assert.AreEqual (IsolationLevel.Serializable, level, "#I");
#endif
// Snapshot is badly broken on MS.NET 2.0:
//https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=305736
#if NET_2_0 && MONO
trans = conn.BeginTransaction (IsolationLevel.Snapshot);
//.........这里部分代码省略.........