Esempio n. 1
0
        public static AirPortList GetDefaultAirPortList()
        {
            AirPortList    myAirPortList = new AirPortList();
            Config         cfg           = new Config();
            OdbcConnection cn            = new OdbcConnection();

            cn.ConnectionString = cfg.ConnectionString;

            OdbcCommand cm = cn.CreateCommand();

            cm.CommandType = CommandType.StoredProcedure;
            cm.CommandText = "SelectAirPortList";
            try
            {
                cn.Open();
                OdbcDataReader dr = cm.ExecuteReader();
                while (dr.Read())
                {
                    AirPort air = new AirPort();
                    air.AirPortID          = (int)dr["airP_id"];
                    air.AirPortName        = dr["airP_name"].ToString();
                    air.AirPortCityName    = dr["city_name"].ToString();
                    air.AirPortCountryName = dr["cntr_name"].ToString();
                    myAirPortList.Add(air);
                }
            }
            catch (OdbcException ex)
            {
                e = ex;
            }

            return(myAirPortList);
        }
Esempio n. 2
0
        //错误处理
        public override ErrorTypes ErrorHandler(Exception e, out string message)
        {
            message = "";
            if (e is OdbcException)
            {
                OdbcException sqlErr = (OdbcException)e;
                int           j      = 0;
                for (j = 0; j < sqlErr.Errors.Count; j++)
                {
                    if (sqlErr.Errors[j].NativeError != 3621)
                    {
                        break;
                    }
                }
                switch (sqlErr.Errors[j].NativeError)
                {
                case 2627:
                    message = "数据重复!";
                    return(ErrorTypes.NotUnique);

                case 8152:
                    return(ErrorTypes.DataTooLong);

                case 515:
                    message = "参考:" + sqlErr.Message;
                    return(ErrorTypes.NotAllowDataNull);

                case 0:
                    return(ErrorTypes.DataTypeNotMatch);

                case 544:
                    message = "参考:" + sqlErr.Message;
                    return(ErrorTypes.AutoValueOn);

                case 547:
                    message = "参考:" + sqlErr.Message;
                    return(ErrorTypes.RestrictError);

                case 8178:
                    message = "参考:" + sqlErr.Message;
                    return(ErrorTypes.RequireAttribute);
                }
                message = "数据库操作异常:";
                for (int i = 0; i < sqlErr.Errors.Count; i++)
                {
                    message += "Index #" + i + "\n" +
                               "Message: " + sqlErr.Message + "\n" +
                               "Native: " + sqlErr.Errors[i].NativeError.ToString() + "\n" +
                               "Source: " + sqlErr.Errors[i].Source + "\n";
                }
                return(ErrorTypes.DatabaseUnknwnError);
            }
            else
            {
                message = "";
                return(ErrorTypes.Unknown);
            }
        }
Esempio n. 3
0
 // <Snippet1>
 public void DisplayOdbcErrors(OdbcException exception)
 {
     for (int i = 0; i < exception.Errors.Count; i++)
     {
         Console.WriteLine("Index #" + i + "\n" +
                           "Error: " + exception.Errors[i].ToString() + "\n");
     }
     Console.ReadLine();
 }
Esempio n. 4
0
 private void handleException(OdbcException MyOdbcException)
 {
     for (int i = 0; i < MyOdbcException.Errors.Count; i++)
     {
         Console.Write("SQL ERROR #" + i + "\n" +
                       "Message: " + MyOdbcException.Errors[i].Message + "\n" +
                       "Native: " + MyOdbcException.Errors[i].NativeError.ToString() + "\n" +
                       "Source: " + MyOdbcException.Errors[i].Source + "\n" +
                       "SQL: " + MyOdbcException.Errors[i].SQLState + "\n");
     }
 }
Esempio n. 5
0
// <Snippet1>
    public void DisplayOdbcErrorCollection(OdbcException exception)
    {
        for (int i = 0; i < exception.Errors.Count; i++)
        {
            MessageBox.Show("Index #" + i + "\n" +
                            "Message: " + exception.Errors[i].Message + "\n" +
                            "Native: " + exception.Errors[i].NativeError.ToString() + "\n" +
                            "Source: " + exception.Errors[i].Source + "\n" +
                            "SQL: " + exception.Errors[i].SQLState + "\n");
        }
    }
Esempio n. 6
0
 // <Snippet1>
 public void DisplayOdbcErrorCollection(OdbcException exception)
 {
     for (int i = 0; i < exception.Errors.Count; i++)
     {
         Console.WriteLine("Index #" + i + "\n" +
                           "Message: " + exception.Errors[i].Message + "\n" +
                           "Native: " + exception.Errors[i].NativeError.ToString() + "\n" +
                           "Source: " + exception.Errors[i].Source + "\n" +
                           "SQL: " + exception.Errors[i].SQLState + "\n");
     }
     Console.ReadLine();
 }
        /// <summary>
        /// Logs ODBC Exceptions in a text file
        /// </summary>
        /// <param name="odbcException">The ODBC exception that has to be logged</param>
        /// <param name="query">The location of the logfile (including filename)</param>
        public static void LogOdbcException(OdbcException odbcException, string query)
        {
            StreamWriter logger = new StreamWriter("DBFaults.txt", true); //Open the file and get ready to append the error-info to the file.

            logger.WriteLine(odbcException.Message);
            logger.WriteLine(odbcException.Errors[0].Message);
            logger.WriteLine(odbcException.Errors[0].NativeError);
            logger.WriteLine(odbcException.Errors[0].SQLState);
            logger.WriteLine(query);
            logger.WriteLine(DateTime.Now);                     //Put a timestamp so we know when the error happened
            logger.WriteLine("----------++++++++++----------"); //Make it clear this is the end of the error.
            logger.Flush();
            logger.Close();
        }
Esempio n. 8
0
        //
        // WriteToEventLog
        //   A helper function that writes exception detail to the event log. Exceptions
        // are written to the event log as a security measure to avoid private database
        // details from being returned to the browser. If a method does not return a status
        // or boolean indicating the action succeeded or failed, a generic exception is also
        // thrown by the caller.
        //
        private void WriteToEventLog(OdbcException e, string action)
        {
            EventLog log = new EventLog();

            log.Source = eventSource;
            log.Log    = eventLog;

            string message = exceptionMessage + "\n\n";

            message += "Action: " + action + "\n\n";
            message += "Exception: " + e.ToString();

            log.WriteEntry(message);
        }
Esempio n. 9
0
        private string ParseOdbcErrorCollection(OdbcException exception)
        {
            StringBuilder error = new StringBuilder();

            for (int i = 0; i < exception.Errors.Count; i++)
            {
                error.Append("Index #" + i + "\n" +
                             "Message: " + exception.Errors[i].Message + "\n" +
                             "Native: " + exception.Errors[i].NativeError.ToString() + "\n" +
                             "Source: " + exception.Errors[i].Source + "\n" +
                             "SQL: " + exception.Errors[i].SQLState + "\n");
            }
            return(error.ToString());
        }
Esempio n. 10
0
        protected override bool IsDuplicateKeyException(System.Exception ex)
        {
            if (ex is OdbcException)
            {
                OdbcException sqliteOdbcException = (OdbcException)ex;
                //if(sqliteOdbcException.ErrorCode = SQLiteErrorCode.Constraint &&
                //   sqliteException.Message != null &&
                //   sqliteException.Message.Contains("must be unique")) {
                //  return true;
                //}
            }

            return(false);
        }
Esempio n. 11
0
        public static string GetOdbcError(OdbcException e)
        {
            string errorMessages = "";

            for (int i = 0; i < e.Errors.Count; i++)
            {
                errorMessages += "Index #" + i + "\n" +
                                 "Message: " + e.Errors[i].Message + "\n" +
                                 "NativeError: " + e.Errors[i].NativeError.ToString() + "\n" +
                                 "Source: " + e.Errors[i].Source + "\n" +
                                 "SQL: " + e.Errors[i].SQLState + "\n";
            }

            return(errorMessages);
        }
Esempio n. 12
0
File: Odbc.cs Progetto: Wooyme/HIS-1
        /// <summary>
        /// 错误处理
        /// </summary>
        /// <param name="e">异常</param>
        /// <param name="message">消息</param>
        /// <returns></returns>
        public override ErrorTypes ErrorHandler(Exception e, out string message)
        {
            message = "";
            if (e is OdbcException)
            {
                OdbcException sqlErr = (OdbcException)e;
//				int j = 0;
//				for (j = 0;j < sqlErr.Errors.Count ;j++)
//				{
//					if (sqlErr.Errors[j].Number != 3621) break;
//				}
//				switch (sqlErr.Errors[j].Number)
//				{
//					case 2627:
//						message = "数据重复!";
//						return ErrorTypes.NotUnique;
//					case 8152:
//						return ErrorTypes.DataTooLong;
//					case 515:
//						message = "参考:" + sqlErr.Message;
//						return ErrorTypes.NotAllowDataNull;
//					case 0:
//						return ErrorTypes.DataTypeNotMatch;
//					case 544:
//						message = "参考:" + sqlErr.Message;
//						return ErrorTypes.AutoValueOn;
//					case 547:
//						message = "参考:" + sqlErr.Message;
//						return ErrorTypes.RestrictError;
//
//				}
//				message = "数据库操作异常:";
//				for(int i =0; i <sqlErr.Errors.Count;i++)
//				{
//					message += "Index #" + i + "\n" +
//						"Message: " + sqlErr.Message + "\n" +
//						"Native: " + sqlErr.Errors[i].Number.ToString() + "\n" +
//						"Source: " + sqlErr.Errors[i].Source + "\n" ;
//				}
                return(ErrorTypes.DatabaseUnknownError);
            }
            else
            {
                message = "";
                return(ErrorTypes.Unknown);
            }
        }
Esempio n. 13
0
        public override object Convert(object value, ConvertType convertType)
        {
            switch (convertType)
            {
            case ConvertType.ExceptionToErrorNumber:
                if (value is OdbcException)
                {
                    OdbcException ex = (OdbcException)value;
                    if (ex.Errors.Count > 0)
                    {
                        return(ex.Errors[0].NativeError);
                    }
                }
                break;
            }

            return(base.Convert(value, convertType));
        }
Esempio n. 14
0
    //Generic ODBC Exception used in all try/exception where needs show the error messages.
    public string catchODBCException(OdbcException o, string Level)
    {
        string tmsg = "";

        switch (Level)
        {
        case "Basic":
        {
            tmsg  = "We are sorry, we are experiencing technical problems ...<br/><br/>";
            tmsg += "<hr/>";
            tmsg += "<br/>Message: " + o.Message;
            tmsg += "<br/>Others: " + o.InnerException;
            tmsg += "<hr/>";
            tmsg += "<br/><br/>Try again! If the problem persist, contact techinical suport";
            break;
        }

        case "Fully":
        {
            tmsg  = "We are sorry, we are experiencing technical problems ...";
            tmsg += "<hr/>";
            tmsg += "<br/>Message: " + o.Message;
            tmsg += "<br/>Source: " + o.Source;
            tmsg += "<br/>Stack Trace: " + o.StackTrace;
            tmsg += "<br/>Target Site: " + o.TargetSite.Name;
            tmsg += "<br/>Others: " + o.InnerException;
            tmsg += "<hr/>";
            tmsg += "<br/>Try again! If the problem persist, contact techinical suport";
            break;
        }

        default: break;
        }

        return(tmsg);
    }
Esempio n. 15
0
        private string GetADONETError(OdbcException ex)
        {
            //string sQuery;
            long lNativeError = 0;

            string sErrorDesc = "";

            if (ex.Errors.Count == 0)
            {
                return(sErrorDesc);
            }

            foreach (OdbcError oErr in ex.Errors)
            {
                sErrorDesc = oErr.Message;

                if (sErrorDesc.EndsWith("Transaction rollback"))
                {
                    lNativeError = oErr.NativeError;
                    break;
                }
            }

            DbSelectStatement clause = CreateSelectClause();

            if ((lNativeError >= 10000) && (lNativeError < 20000)) // 'Error
            {
                sErrorDesc   = "Error: " + lNativeError.ToString() + " ";
                lNativeError = lNativeError - 10000;
                clause
                .SelectColumn("ImportErrors", "Description")
                .From("ImportErrors")
                .Criteria
                .IsEqual("ImportErrors", "ImportErrorID", (int)lNativeError);
                //sQuery = "Select Description from ImportErrors where ImportErrorID = " + lNativeError.ToString();
            }
            else if ((lNativeError >= 1) && (lNativeError < 10000)) // 'Warning
            {
                clause
                .SelectColumn("ImportWarnings", "Description")
                .From("ImportWarnings")
                .Criteria
                .IsEqual("ImportWarnings", "ImportWarningID", (int)lNativeError);
                //sQuery = "Select Description from ImportWarnings where ImportWarningID = " + lNativeError.ToString();
                sErrorDesc = "Warning: " + lNativeError.ToString() + " ";
            }
            else if (lNativeError >= 20000)
            {
                clause
                .SelectColumn("InternalODBCErrors", "Description")
                .From("InternalODBCErrors")
                .Criteria
                .IsEqual("InternalODBCErrors", "NativeErrorNumber", (int)lNativeError);
                //sQuery = "Select Description from InternalODBCErrors where NativeErrorNumber = " + lNativeError.ToString();
                sErrorDesc = lNativeError.ToString() + " ";
            }
            else
            {
                // return first error in the list
                foreach (OdbcError oErr in ex.Errors)
                {
                    sErrorDesc = oErr.Message;
                    break;
                }
                return(sErrorDesc);
            }

            DbDataAdapter adapter      = CreateDbDataAdapter(clause);
            DataSet       ADORecordset = new DataSet();

            adapter.Fill(ADORecordset, "ImportWarnings");

            foreach (DataRow drow in ADORecordset.Tables["ImportWarnings"].Rows)
            {
                sErrorDesc += drow["Description"];
            }
            return(sErrorDesc);
        }
Esempio n. 16
0
        public bool ExportToTxt()
        {
            bool flag;

            try
            {
                string str = string.Concat("SELECT COUNT(*) from ", this.TableName);
                System.Data.Odbc.OdbcCommand sqlCommand = new System.Data.Odbc.OdbcCommand(str, this.conn);
                OdbcDataReader sqlDataReader            = sqlCommand.ExecuteReader();
                sqlDataReader.Read();
                int    num  = Convert.ToInt32(sqlDataReader[0].ToString());
                string str1 = sqlDataReader[0].ToString();
                sqlDataReader.Close();

                if (!(this.SqlCommand != ""))
                {
                    sqlCommand.CommandText = string.Concat("SELECT * from ", this.TableName);
                }
                else
                {
                    sqlCommand.CommandText = this.SqlCommand;
                }
                sqlDataReader = sqlCommand.ExecuteReader();
                int           fieldCount    = sqlDataReader.FieldCount;
                decimal       num1          = new decimal(0);
                StreamWriter  streamWriter  = new StreamWriter(string.Concat(this.filename, ".Txt"));
                StringBuilder stringBuilder = new StringBuilder();
                while (sqlDataReader.Read())
                {
                    decimal num2 = num1;
                    num1 = num2++;
                    this.updateDisplay(num2, num, str1);
                    for (int i = 0; i < fieldCount; i++)
                    {
                        if (!(sqlDataReader[i].GetType().ToString() == "System.Byte[]"))
                        {
                            stringBuilder.Append(sqlDataReader[i].ToString());
                        }
                        else
                        {
                            byte[] item = (byte[])sqlDataReader[i];
                            stringBuilder.Append(DataWriter2.BytesToHex(item));
                        }
                        if ((i >= fieldCount - 1 ? false : i >= 0))
                        {
                            stringBuilder.Append("|");
                        }
                    }
                    stringBuilder.Replace(Environment.NewLine, string.Empty);
                    streamWriter.WriteLine(stringBuilder.ToString());
                    stringBuilder.Length = 0;
                }
                streamWriter.Close();
                streamWriter.Dispose();
                stringBuilder = null;
                sqlCommand.Dispose();
                sqlDataReader.Dispose();
                flag = true;
            }
            catch (OdbcException odbcException1)
            {
                OdbcException odbcException = odbcException1;
                this.SimpleError = "OdbcError";
                this.Error       = odbcException.Message;
                flag             = false;
            }
            catch (IOException oException1)
            {
                IOException oException = oException1;
                this.SimpleError = "FileError";
                this.Error       = oException.Message;
                flag             = false;
            }
            catch (UnauthorizedAccessException unauthorizedAccessException1)
            {
                UnauthorizedAccessException unauthorizedAccessException = unauthorizedAccessException1;
                this.SimpleError = "PermissionsError";
                this.Error       = unauthorizedAccessException.Message;
                flag             = false;
            }
            return(flag);
        }
        private string GetADONETError(OdbcException ex)
        {
            string sQuery;
            long   lNativeError = 0;

            string sErrorDesc = "";

            if (ex.Errors.Count == 0)
            {
                return(sErrorDesc);
            }

            foreach (OdbcError oErr in ex.Errors)
            {
                sErrorDesc = oErr.Message;

                if (sErrorDesc.EndsWith("Transaction rollback"))
                {
                    lNativeError = oErr.NativeError;
                    break;
                }
            }

            if ((lNativeError >= 10000) && (lNativeError < 20000)) // 'Error
            {
                sErrorDesc   = "Error: " + lNativeError.ToString() + " ";
                lNativeError = lNativeError - 10000;
                sQuery       = "Select Description from ImportErrors where ImportErrorID = " + lNativeError.ToString();
            }
            else if ((lNativeError >= 1) && (lNativeError < 10000)) // 'Warning
            {
                sQuery     = "Select Description from ImportWarnings where ImportWarningID = " + lNativeError.ToString();
                sErrorDesc = "Warning: " + lNativeError.ToString() + " ";
            }
            else if (lNativeError >= 20000)
            {
                sQuery     = "Select Description from InternalODBCErrors where NativeErrorNumber = " + lNativeError.ToString();
                sErrorDesc = lNativeError.ToString() + " ";
            }
            else
            {
                // return first error in the list
                foreach (OdbcError oErr in ex.Errors)
                {
                    sErrorDesc = oErr.Message;
                    break;
                }
                return(sErrorDesc);
            }

            /*
             * OdbcDataAdapter adapter = new OdbcDataAdapter(sQuery, DbManager.Instance.MyobConnection);
             * DataSet ADORecordset = new DataSet();
             * adapter.Fill(ADORecordset, "ImportWarnings");
             *
             * foreach (DataRow drow in ADORecordset.Tables["ImportWarnings"].Rows)
             * {
             *  sErrorDesc += drow["Description"];
             * }
             */
            return(sErrorDesc);
        }