예제 #1
0
        public bool EliminarDatosDescarga(ListQuerysDescarga QueryList)
        {
            SqlCeCommand cmd = new SqlCeCommand();
            int          I   = 0;

            try
            {
                this.OpenConnection();
                for (I = 0; I < QueryList.Count; I++)
                {
                    cmd.Connection  = (SqlCeConnection)this.Connection;
                    cmd.CommandText = QueryList[I].Query;
                    if (cmd.CommandText.StartsWith("DELETE", StringComparison.CurrentCultureIgnoreCase))
                    {
                        cmd.CommandType = CommandType.Text;
                    }
                    cmd.ExecuteNonQuery();
                }
                return(true);
            }
            catch
            {
                return(false);
            }
            finally
            {
                if (this.Connection.State == ConnectionState.Open)
                {
                    this.CloseConnection();
                }
            }
        }
예제 #2
0
        public string GetSerializedData(ListQuerysDescarga QueryList, IEstadoCarga Estado)
        {
            StringBuilder   sb  = new StringBuilder();
            SqlCeDataReader dr  = null;
            SqlCeCommand    cmd = new SqlCeCommand();
            int             I   = 0;
            int             J   = 0;
            int             nIndexRowCountReplace = 0;
            int             nTableCount           = 0;
            int             nRowCount             = 0;
            int             nTotalRowsCount       = 0;

            // Se adicionan las 2 primeras lineas con tags para poder remplazarlos al final
            sb.Append("TABLECOUNT: <<TABLECOUNT>>" + "\r\n");
            sb.Append("TOTALROWCOUNT: <<TOTALROWCOUNT>>" + "\r\n");
            nTableCount     = 0;
            nTotalRowsCount = 0;
            try
            {
                this.OpenConnection();
                for (I = 0; I < QueryList.Count; I++)
                {
                    if (Estado.Cancelado)
                    {
                        break;
                    }
                    Estado.IniciarTabla(QueryList[I].TableName.ToUpper());
                    cmd.Connection  = (SqlCeConnection)this.Connection;
                    cmd.CommandText = QueryList[I].Query;
                    if (cmd.CommandText.StartsWith("SELECT", StringComparison.CurrentCultureIgnoreCase))
                    {
                        cmd.CommandType = CommandType.Text;
                    }
                    else
                    {
                        cmd.CommandType = CommandType.TableDirect;
                    }
                    dr = cmd.ExecuteReader();
                    if (dr.Read())
                    {
                        nTableCount += 1;
                        sb.Append("TABLE: " + QueryList[I].TableName + "\r\n");
                        nIndexRowCountReplace = sb.Length;
                        sb.Append("ROWCOUNT: <<ROWCOUNT>> " + "\r\n");

                        // Se agrega una primer linea con los nombres de los campos
                        for (J = 0; J < dr.FieldCount; J++)
                        {
                            sb.Append(dr.GetName(J) + "|");
                        }
                        sb.Append("\r\n");

                        // Se agrega una segunda linea con los tipos de datos
                        for (J = 0; J < dr.FieldCount; J++)
                        {
                            sb.Append(dr.GetFieldType(J).ToString() + "|");
                        }
                        sb.Append("\r\n");

                        // Se agregan lineas con los datos de todos los registros
                        nRowCount = 0;
                        do
                        {
                            if (Estado.Cancelado)
                            {
                                break;
                            }
                            for (J = 0; J < dr.FieldCount; J++)
                            {
                                if (dr.IsDBNull(J))
                                {
                                    sb.Append("(null)|");
                                }
                                else
                                {
                                    if (dr.GetFieldType(J) == typeof(System.DateTime))
                                    {
                                        sb.Append(dr.GetDateTime(J).ToString("yyyy/MM/dd HH:mm:ss") + "|");
                                    }
                                    else
                                    {
                                        sb.Append(System.Convert.ToString(dr.GetValue(J)) + "|");
                                    }
                                }
                            }
                            sb.Append("\r\n");
                            nRowCount       += 1;
                            nTotalRowsCount += 1;
                        } while (dr.Read());
                        dr.Close();
                        sb.Replace("<<ROWCOUNT>>", nRowCount.ToString(), nIndexRowCountReplace, 40);
                        sb.Append("\r\n"); // Se agrega una linea adicional para delimitar los datos de la tabla
                    }
                }
                sb.Replace("<<TABLECOUNT>>", nTableCount.ToString(), 0, 40);
                if (sb.Length < 60)
                {
                    sb.Replace("<<TOTALROWCOUNT>>", nTotalRowsCount.ToString(), 0, sb.Length);
                }
                else
                {
                    sb.Replace("<<TOTALROWCOUNT>>", nTotalRowsCount.ToString(), 0, 60);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (this.Connection.State == ConnectionState.Open)
                {
                    this.CloseConnection();
                }
            }
            return(sb.ToString());
        }