private static void Screenshot() { var name = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; var bmp = ReadBack.FrameBuffer(); Clipboard.SetImage(bmp); bmp.Save(@"d:\" + name + ".png"); }
public bool Execute(Command command, TransactionHelper transactionHelper) { using (IDbCommand dbCommand = connection.CreateCommand()) { dbCommand.CommandText = command.Statement; dbCommand.Transaction = transactionHelper.Transaction; // Add parameters foreach (object parameter in command.Parameters) { IDataParameter param = dbCommand.CreateParameter(); ReadBack rb = parameter as ReadBack; if (rb != null) { param.DbType = GetDbTypeFromObject(values[rb.Name]); param.Value = values[rb.Name]; } else { param.DbType = GetDbTypeFromObject(parameter); param.Value = parameter; } if (param.Value == null) { param.Value = System.DBNull.Value; } dbCommand.Parameters.Add(param); } if (command.IsAutoReadFieldsIntoBuffer) // we are interested in the result { using (IDataReader reader = dbCommand.ExecuteReader()) { if (reader.Read()) { for (int i = 0; i != reader.FieldCount; ++i) { string name = reader.GetName(i); object value = reader.GetValue(i); values[name] = value; } return(true); } } } else // or we are not. { try { return(dbCommand.ExecuteNonQuery() != 0); } catch (System.Exception e) { bool bErrorHandled = false; string sDescription = e.Message; // IBM/DB2: with this database-kind when UPDATE, DELETE or FETCH doesnot affect rows an error is thrown by the ODBC-driver // In reality the statement succeeds --> act as if it is so and ignore this specific error if (sDescription.IndexOf("[IBM]") == 0 && sDescription.IndexOf("[DB2") >= 0 && sDescription.IndexOf("SQL0100W") >= 0 ) { bErrorHandled = true; } if (!bErrorHandled) { throw new Altova.Types.TargetUpdateFailureException("DB Command Execution Failure: " + command.Statement, e); } } } return(false); } }