示例#1
0
        /// <summary>Execute Scalar Query </summary>
        /// <param name="dv">DataValue Object</param>
        /// <param name="query">The Select Query</param>
        /// <returns>If The Execute Scalar Returns the Null, the function will return
        /// the empty string otherwise the value</returns>
        /// <exception name="ArgumentNullException"></exception>
        /// <exception name="InvalidOperationException"></exception>
        public ResultArgs ExecuteScalar(DataValue dv, string query, EnumCommand.SQLType sqlType = EnumCommand.SQLType.Static)
        {
            ResultArgs    resultArgs  = new ResultArgs();
            string        ScalarValue = string.Empty;
            SqlCommand    Command     = null;
            SqlConnection Con         = OpenConnection();

            try
            {
                if (string.IsNullOrEmpty(query))
                {
                    // throw new ArgumentNullException("Query is empty!", "ExecuteScalar(DataValue dv, string query)");
                    using (ErrorLog objlog = new ErrorLog())
                    {
                        objlog.WriteError("Error Handler", "ExecuteScalar(DataValue,string)", query, "Query is empty!");
                    }
                }
                if (dv == null)
                {
                    Command = new SqlCommand(query, Con);
                }
                else
                {
                    Command = SetSQLCommand(dv, query, Con, sqlType);
                }
                Object obj = Command.ExecuteScalar();
                if (obj != null)
                {
                    ScalarValue        = obj.ToString();
                    resultArgs.Success = true;
                }
            }
            catch (InvalidOperationException ex)
            {
                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("MysqlHandler", "ExecuteScalar(DataValue dv, string query)", ex.Message);
                    objHandler.WriteError(ex);
                }
            }
            catch (Exception ex)
            {
                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("MysqlHandler", "ExecuteScalar(DataValue dv, string query)", ex.Message);
                    objHandler.WriteError(ex);
                }
            }
            finally
            {
                if (Command != null)
                {
                    Command.Dispose();
                }
                Command = null;
                CloseConnection();
            }
            resultArgs.StringResult = ScalarValue;
            return(resultArgs);
        }
示例#2
0
        /// <summary>Check a parameter is available in the query </summary>
        /// <param name="query">The Select,Insert,Update or Delete Query</param>
        /// <param name="fieldName">The Filed Name</param>
        /// <returns>if the query contains the field,it return the filed name other wise returns the empty</returns>
        private string GetParameter(string query, string fieldName, EnumCommand.SQLType sqlType)
        {
            string param = fieldName;

            if (sqlType == EnumCommand.SQLType.Static)
            {
                param = fieldName.ToUpper();
                param = query.Contains(param) ? param : string.Empty;
            }
            return(param);
        }
示例#3
0
        private SqlCommand SetSQLCommand(DataValue dv, string query, SqlConnection connection, EnumCommand.SQLType sqlType)
        {
            string     Param     = "";
            string     FieldName = "";
            SqlCommand Command   = new SqlCommand(query, connection);

            Command.CommandType = (sqlType == EnumCommand.SQLType.StoredProcedure) ? CommandType.StoredProcedure : CommandType.Text;
            foreach (DataValueBase dvBase in dv)
            {
                try
                {
                    FieldName = dvBase.FieldName;
                    Param     = GetParameter(query, FieldName, sqlType);
                    if (Param != string.Empty)
                    {
                        SqlParameter Parameter = new SqlParameter(Param, GetSQLFieldType(dvBase.FieldDataType));
                        if (dvBase.FieldDataType == EnumCommand.DataType.ByteArray)
                        {
                            if (string.IsNullOrEmpty(dvBase.FieldValue))
                            {
                                Parameter.Value = SqlBinary.Null;
                            }
                            else
                            {
                                Parameter.Value = Encoding.ASCII.GetBytes(dvBase.FieldValue);
                            }
                        }
                        else
                        {
                            if (string.IsNullOrEmpty(dvBase.FieldValue))
                            {
                                Parameter.Value = DBNull.Value;
                            }
                            else
                            {
                                Parameter.Value = dvBase.FieldValue;
                            }
                        }
                        Command.Parameters.Add(Parameter);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(Command);
        }
示例#4
0
        /// <summary>Add the parameter name, value and data type to the MySql Command Object </summary>
        /// <param name="dv">DataValue Object</param>
        /// <param name="query">The Insert,Update,Delete or Select Query </param>
        /// <returns>MySql Command</returns>
        private SqlCommand SetMySqlCommand(DataValue param, string query, SqlConnection connection, EnumCommand.SQLType sqlType)
        {
            string     Param     = "";
            string     FieldName = "";
            SqlCommand Command   = new SqlCommand(query, connection);

            Command.CommandType = (sqlType == EnumCommand.SQLType.StoredProcedure) ? CommandType.StoredProcedure : CommandType.Text;
            if (param != null)
            {
                foreach (SqlParameter p in param)
                {
                    if (p != null)
                    {
                        // Check for derived output value with no value assigned
                        if ((p.Direction == ParameterDirection.InputOutput ||
                             p.Direction == ParameterDirection.Input) &&
                            (p.Value == null))
                        {
                            p.Value = DBNull.Value;
                        }
                        Command.Parameters.Add(p);
                    }
                }
            }
            return(Command);
        }
示例#5
0
        /// <summary>Execute the Select Query  </summary>
        /// <param name="dv">DataValue Object</param>
        /// <param name="query">The Select Query</param>
        /// <returns>DataTable with the records</returns>
        /// <exception name="ArgumentNullException"></exception>
        /// <exception name="InvalidOperationException"></exception>
        public ResultArgs FetchData(string query, EnumCommand.DataSource dataSourceType, EnumCommand.SQLType sqlType = EnumCommand.SQLType.Static, DataValue dv = null)
        {
            ResultArgs result = new ResultArgs();

            result.Success = false;
            SqlDataAdapter Adapter;
            SqlCommand     Command = null;
            DataSet        ds      = new DataSet();
            SqlConnection  Con     = OpenConnection();

            try
            {
                if (string.IsNullOrEmpty(query))
                {
                    //throw new ArgumentNullException("Query is empty", "FetchData(DataValue dv, string query)");
                    using (ErrorLog objlog = new ErrorLog())
                    {
                        result.Success = false;
                        objlog.WriteError("Error Handler", "FetchData(DataValue,string)", query, "Query is empty!");
                    }
                }
                else
                {
                    if (dv == null)
                    {
                        Command = new SqlCommand(query, Con);
                    }
                    else
                    {
                        Command = SetSQLCommand(dv, query, Con, sqlType);
                    }

                    result.dataSource = null;
                    try
                    {
                        if (Con.State == ConnectionState.Open && Command != null)
                        {
                            switch (dataSourceType)
                            {
                            case EnumCommand.DataSource.DataSet:
                            {
                                Adapter = new SqlDataAdapter(Command);
                                if (result.dataSource == null)
                                {
                                    result.dataSource = new DataSet();
                                }
                                result.RowsAffected = Adapter.Fill(result.dataSource as DataSet);
                                result.Success      = true;
                                break;
                            }

                            case EnumCommand.DataSource.DataView:
                            {
                                Adapter = new SqlDataAdapter(Command);
                                if (result.dataSource == null)
                                {
                                    result.dataSource = new DataTable();
                                }
                                result.RowsAffected = Adapter.Fill(result.dataSource as DataTable);
                                result.dataSource   = ((DataTable)result.dataSource).DefaultView;
                                result.Success      = true;
                                break;
                            }

                            case EnumCommand.DataSource.DataReader:
                            {
                                result.dataSource   = Command.ExecuteReader();
                                result.RowsAffected = ((SqlDataReader)result.dataSource).RecordsAffected;
                                result.Success      = true;
                                break;
                            }

                            case EnumCommand.DataSource.Scalar:
                            {
                                result.dataSource = Command.ExecuteScalar();
                                if (result.dataSource != null)
                                {
                                    result.RowsAffected = 1;
                                    result.Success      = true;
                                }
                                else
                                {
                                    result.RowsAffected = 0;
                                    result.Success      = true;
                                }

                                break;
                            }

                            default:
                            {
                                Adapter = new SqlDataAdapter(Command);
                                if (result.dataSource == null)
                                {
                                    result.dataSource = new DataTable();
                                }
                                result.RowsAffected = Adapter.Fill(result.dataSource as DataTable);
                                result.Success      = true;
                                break;
                            }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        //Update Exception
                        result.Exception = e;
                        result.Success   = false;
                        using (ErrorLog objlog = new ErrorLog())
                        {
                            objlog.WriteError("Error Handler", "FetchData(DataValue,string)", query, e.Message + " Query is empty!");
                        }
                        //new ErrorLog().WriteError("MySQLDataHandler", "Fetch", e.Message, Command.CommandText, CommonMethods.GetExceptionLineNo(e));
                    }
                    finally
                    {
                        // CloseConnection(TransactionType.None);
                        CloseConnection();
                    }

                    //result.ShowMessage("Updated");
                    if (result.Success)
                    {
                        result.DataSource.Data = result.dataSource;
                    }
                    //Adapter = new SqlDataAdapter(Command);
                    //Adapter.Fill(ds);
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("MysqlHandler", "FetchData", ex.Message);
                }
            }
            finally
            {
                if (Command != null)
                {
                    Command.Dispose();
                }
                Command = null;
                CloseConnection();
            }
            return(result);
        }
示例#6
0
        public ResultArgs FecthDataAsList <T>(string query, EnumCommand.SQLType sqlType = EnumCommand.SQLType.Static, DataValue param = null) where T : new()
        {
            ResultArgs result = new ResultArgs();

            result.Success = false;
            SqlCommand    Command = null;
            DataSet       ds      = new DataSet();
            SqlConnection Con     = OpenConnection();

            List <T> res = new List <T>();

            try
            {
                if (string.IsNullOrEmpty(query))
                {
                    //throw new ArgumentNullException("Query is empty", "FetchData(DataValue dv, string query)");
                    using (ErrorLog objlog = new ErrorLog())
                    {
                        result.Success = false;
                        objlog.WriteError("Error Handler", "FetchData(DataValue,string)", query, "Query is empty!");
                    }
                }
                else
                {
                    if (param == null)
                    {
                        Command = new SqlCommand(query, Con);
                    }
                    else
                    {
                        Command = SetSQLCommand(param, query, Con, sqlType);
                    }
                    result.dataSource = null;
                    try
                    {
                        if (Con.State == ConnectionState.Open && Command != null)
                        {
                            result.dataSource = Command.ExecuteReader();
                            SqlDataReader SqlDataReader = ((SqlDataReader)result.dataSource);
                            result.RowsAffected = ((SqlDataReader)result.dataSource).RecordsAffected;
                            result.Success      = true;
                            Command.Parameters.Clear();
                            if (SqlDataReader.HasRows)
                            {
                                while (SqlDataReader.Read())
                                {
                                    T      t = new T();
                                    object objValue;
                                    for (int inc = 0; inc < SqlDataReader.FieldCount; inc++)
                                    {
                                        objValue = null;
                                        Type         type = t.GetType();
                                        PropertyInfo prop = type.GetProperty(SqlDataReader.GetName(inc));
                                        objValue = SqlDataReader.GetValue(inc).ToString();
                                        if (objValue == DBNull.Value)
                                        {
                                            objValue = null;
                                        }
                                        prop.SetValue(t, objValue, null);
                                    }
                                    res.Add(t);
                                }
                                result.DataSource.Data = res;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        //Update Exception
                        result.Exception = e;
                        result.Success   = false;
                        using (ErrorLog objlog = new ErrorLog())
                        {
                            objlog.WriteError("Error Handler", "FetchData(DataValue,string)", query, e.Message + " Query is empty!");
                        }
                        //new ErrorLog().WriteError("MySQLDataHandler", "Fetch", e.Message, Command.CommandText, CommonMethods.GetExceptionLineNo(e));
                    }
                    finally
                    {
                        // CloseConnection(TransactionType.None);
                        Command.Parameters.Clear();
                        CloseConnection();
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("MysqlHandler", "FetchData", ex.Message);
                }
            }
            finally
            {
                if (Command != null)
                {
                    Command.Dispose();
                }
                Command = null;
                CloseConnection();
            }

            return(result);
        }
示例#7
0
        /// <summary>Execute the Insert,Update,Delete Query </summary>
        /// <param name="dv">DataValue Object</param>
        /// <param name="query">The Insert,Update or Delete Query</param>
        /// <param name="getlastinsert_ID">LAST_INSERT_ID if set to true
        /// bind last insert id in the result args</param>
        /// <returns>Number of Rows Affected by the Query
        /// greater than 1 --> success
        /// 0 --> failure
        /// -1  --> table referred(delete mode)
        /// -2 --> record referred(delete mode)
        /// </returns>
        /// <exception name="ArgumentNullException"></exception>
        /// <exception name="InvalidOperationException"></exception>
        public ResultArgs ExecuteCommand(DataValue dv, string query, bool getlastinsert_ID, EnumCommand.SQLType sqlType = EnumCommand.SQLType.Static, string spOutput = null)
        {
            ResultArgs result = new ResultArgs();

            result.Success = false;
            SqlCommand    Command = null;
            SqlConnection Con     = OpenConnection();

            try
            {
                if (string.IsNullOrEmpty(query))
                {
                    //throw new ArgumentNullException("Query is empty", "ExecuteCommand(DataValue dv, string query");
                    using (ErrorLog objlog = new ErrorLog())
                    {
                        objlog.WriteError("Error Handler", "ExecuteCommand(DataValue,string)", query, "Query is empty!");
                    }
                }
                else
                {
                    if (dv == null)
                    {
                        Command = new SqlCommand(query, Con);
                    }

                    else
                    {
                        Command = SetSQLCommand(dv, query, Con, sqlType);
                    }

                    if (spOutput != null)
                    {
                        SqlParameter outParameter = new SqlParameter(spOutput, GetSQLFieldType(EnumCommand.DataType.Int64));
                        outParameter.Direction = ParameterDirection.Output;
                        Command.Parameters.Add(outParameter);
                    }
                    result.RowsAffected = Command.ExecuteNonQuery();
                    if (spOutput != null)
                    {
                        result.ReturnValue = Command.Parameters[spOutput].Value;
                    }

                    //get the last insert id if flag is set to true
                    if (getlastinsert_ID)
                    {
                        getRowUniqueId = getlastinsert_ID; //Set true to return the last insert id - not handled for stored procedure
                        SetRowUniqueIdentifierValue(result, Command);
                    }
                    result.Success = true;
                }
            }
            catch (InvalidOperationException ex)
            {
                //throw new InvalidOperationException("Problem in Execute Command " + iex.Message, iex);
                result.RowsAffected = ex.Message.ToLower().Contains("foreign keys") ? -1 : ex.Message.ToLower().Contains("integrity constraint") ? -2 : 0;

                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("Error Handler", "ExecuteCommand(DataValue,string)", query + "Err MSg: " + ex.Message, "Query is empty!");
                    // objHandler.WriteLogtoDB(ex, "ExecuteCommand(DataValue dv, string query)", "MysqlHandler");
                }
            }
            catch (Exception ex)
            {
                result.RowsAffected = ex.Message.ToLower().Contains("foreign key") ? -1 : ex.Message.ToLower().Contains("integrity constraint") ? -2 : 0;

                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("Error Handler", "ExecuteCommand(DataValue,string)", query + "Err MSg: " + ex.Message, "Query is empty!");
                    objHandler.WriteError("MysqlHandler", "ExecuteCommand(DataValue dv, string query)", ex.Message);
                }
            }
            finally
            {
                if (Command != null)
                {
                    Command.Dispose();
                }
                Command = null;
                CloseConnection();
            }
            return(result);
        }
示例#8
0
        /// <summary>
        /// This mehtod is to save image byte
        /// </summary>
        /// <param name="dv">data values</param>
        /// <param name="query">query</param>
        /// <param name="imageByte">imageByte</param>
        /// <param name="fieldName">parametername</param>
        /// <returns>1 --> success
        /// 0 or le 0 --> failure</returns>
        public int ExecuteImageByte(OracleParameter[] dv, string query, byte[] imageByte, string fieldName, EnumCommand.SQLType sqlType = EnumCommand.SQLType.Static)
        {
            int              RowsAffected = 0;
            OracleCommand    Command      = null;
            OracleConnection Con          = OpenConnection();

            try
            {
                Command = SetOracleCommand(dv, query, Con, sqlType);
                //if (imageByte.Length>0)
                Command.Parameters.Add("?" + fieldName, OracleType.Blob, imageByte.Length, fieldName).Value = (object)imageByte;

                RowsAffected = Command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("MysqlHandler", "ExecuteImageByte(DataValue dv, string query, byte[] imageByte)", ex.Message);
                    objHandler.WriteError(ex);
                }
            }
            finally
            {
                if (Command != null)
                {
                    Command.Dispose();
                }
                Command = null;
                CloseConnection();
            }
            return(RowsAffected);
        }
示例#9
0
        /// <summary>
        /// This method is to execute sql with image data.(nominee identity details are saveed through this method)
        /// </summary>
        /// <param name="dv">data value</param>
        /// <param name="query">query</param>
        /// <param name="digitalByte">digital signature</param>
        /// <returns>1 --> success
        /// 0 or le 0 --> failure</returns>
        public int ExecuteByte(OracleParameter[] dv, string query, byte[] digitalByte, int type, EnumCommand.SQLType sqlType = EnumCommand.SQLType.Static)
        {
            int              RowsAffected = 0;
            OracleCommand    Command      = null;
            OracleConnection Con          = OpenConnection();

            try
            {
                Command = SetOracleCommand(dv, query, Con, sqlType);
                if (type > 0)
                {
                    //if (digitalByte.Length>0)
                    Command.Parameters.Add("?SIGNATURE", OracleType.Blob, digitalByte.Length, "SIGNATURE").Value = (object)digitalByte;
                }
                else
                {
                    //if (digitalByte.Length > 0)
                    Command.Parameters.Add("?PHOTO", OracleType.Blob, digitalByte.Length, "PHOTO").Value = (object)digitalByte;
                }

                RowsAffected = Command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                using (ErrorLog objHandler = new ErrorLog())
                {
                    objHandler.WriteError("MysqlHandler", "ExecuteByte(DataValue dv, string query, byte[] digitalByte)", ex.Message);
                    objHandler.WriteError(ex);
                }
            }
            finally
            {
                if (Command != null)
                {
                    Command.Dispose();
                }
                Command = null;
                CloseConnection();
            }
            //ServicedComponent.DisposeObject(this);
            return(RowsAffected);
        }