示例#1
0
文件: Bd.cs 项目: evandrojr/NeoPocket
 public int ImportaLinha(string sql)
 {
     SqlCeCommand cmd = null;
     int rowsAffected = -1;
     cmd = new SqlCeCommand(sql, Con);
     try
     {
         rowsAffected = cmd.ExecuteNonQuery();
     }
     catch (Exception ex)
     {
         DadoImportacao.ErrosQtd++;
         DadoImportacao.LogGrava("Erro: " + sql + Environment.NewLine + ex.Message);
         FE f = new FE("Erro importando do store: ", sql + Environment.NewLine + ex.Message);
         f.ShowDialog();
         throw new Exception("Erro: " + sql + Environment.NewLine + ex.Message);
     }
     return rowsAffected;
 }
示例#2
0
        public void Executar(Boolean limparTabela)
        {
            int contadorLinha = 1;
            string valor="", sql, sdata;
            DateTime testeData;
            ErrosQtd = 0;
            Dictionary<string, int> fieldIndexByFieldNameDic;
            string errorMsg = "";

            fieldIndexByFieldNameDic = D.Bd.FieldIndexesFill(TabelaBdNome);

            SqlCeCommand cmd = new SqlCeCommand();
            SqlCeResultSet rs;
            SqlCeUpdatableRecord reg;

            cmd.Connection = D.Bd.Con;
            cmd.CommandText = TabelaBdNome;
            cmd.CommandType = CommandType.TableDirect;

            rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable);
            reg = rs.CreateRecord();

            try
            {
                LogGrava("===== " + TabelaBdNome + " ======");
                if (limparTabela)
                {
                    sql = "Delete from " + TabelaBdNome;
                    LogGrava("[ " + sql + " ]");
                    bd.ExecuteNonQuery(sql);
                }
                while (csvArquivo.LerLinha())
                {
                    for (int i = 0; i < LstLigacao.Count; ++i)
                    {
                        valor = BuscaValorCampo(LstLigacao[i].CsvCampo, csvArquivo);
                        valor = valor.Trim();
                        //Para a funcao igual usada na busca das listas de campo data e Bit
                        CampoBusca = LstLigacao[i].BdCampo;
                        //Define códigos cliente_pocket para serem sempre = NULL pois deve-se usar o ID_Cliente que vier
                        if (LstLigacao[i].BdCampo == "id_cliente_pocket")
                        {
                            //valor = "null";
                            fieldValueSet(fieldIndexByFieldNameDic, reg, CampoBusca, (object)null);
                        }
                        //Verifica se é nulo ou vazio
                        if (valor == "" || valor.ToLower() == "null")
                        {
                            //valor = "null";
                            //sb2.Append(valor);
                            fieldValueSet(fieldIndexByFieldNameDic, reg, CampoBusca, (object)null);
                        }
                        else
                        {
                            //Verifica se é um campo data
                            if (LstCamposData.Exists(igual))
                            {
                                sdata = DataPtParaBd(valor);
                                testeData = Convert.ToDateTime(sdata, D.CultureInfoBRA.DateTimeFormat);
                                fieldValueSet(fieldIndexByFieldNameDic, reg, CampoBusca, (object)testeData);
                            }
                            else
                                //Verifica se é um campo bit
                                if (LstCamposBit.Exists(igual))
                                {
                                    if (valor == "1")
                                        fieldValueSet(fieldIndexByFieldNameDic, reg, CampoBusca, (object) true);
                                    else
                                        fieldValueSet(fieldIndexByFieldNameDic, reg, CampoBusca, (object) false);
                                }
                                else
                                    //Verifica se é um campo Real
                                    if (LstCamposReal.Exists(igual))
                                    {
                                        //valor = valor.Replace(",", ".");
                                        fieldValueSet(fieldIndexByFieldNameDic, reg, CampoBusca, (object)Convert.ToDouble(valor, D.CultureInfoBRA));
                                    }
                                    else
                                        //Caso normal, dado nao é data e nao é nulo
                                        fieldValueSet(fieldIndexByFieldNameDic, reg, CampoBusca, (object) valor);
                        }
                    }
                    rs.Insert(reg);
                    contadorLinha++;
                }
                LogGrava("Erros que tentaram ser reinseridos " + ErrosQtd);
            }
            catch (Exception ex)
            {
                errorMsg = "Erro importando do store: tabela " + TabelaBdNome + " campo '" + CampoBusca + "' valor '" + valor + "'" + Environment.NewLine + ex.Message + " " + ex.StackTrace;
                DadoImportacao.ErrosQtd++;
                DadoImportacao.LogGrava(errorMsg);
                FE f = new FE("Erro", errorMsg);
                f.ShowDialog();
            }
            finally
            {
                csvArquivo.Fechar();
                rs.Close();
                rs.Dispose();
                cmd.Dispose();
                if(errorMsg != "")
                    throw new Exception(errorMsg);
            }
        }
示例#3
0
文件: FE.cs 项目: evandrojr/NeoPocket
 public static void Show(String message, String title, Exception ex)
 {
     FE f = new FE(title, message, ex.Message + " StackTrace " + ex.StackTrace);
     f.ShowDialog();
 }
示例#4
0
文件: FE.cs 项目: evandrojr/NeoPocket
 public static void Show(Exception ex)
 {
     FE f = new FE("Aviso", ex.Message, ex.StackTrace);
     f.ShowDialog();
 }
示例#5
0
文件: FE.cs 项目: evandrojr/NeoPocket
 public static void Show(String message, String title, String details)
 {
     FE f = new FE(title, message, details);
     f.ShowDialog();
 }