How to check if a given ID exists in the database?

1

I am doing validations before importing a .csv file into the database via C #, I have already done a validation to ensure that the state code is an integer and I also need to check if there is the state code that is coming in .csv exists actually registered in my database ... how can I do this? here is my method that does the validations:

DataTable dt = CriaDataTable();
using (StreamReader arquivo = new StreamReader(caminho))
{
    string linhaArquivo;
    string[] campos;
    DataRow registro;
    bool cabecalhoJaLido = false;

    while (!arquivo.EndOfStream)
    {
        linhaArquivo = arquivo.ReadLine();

        if (!cabecalhoJaLido)
        {
            cabecalhoJaLido = true;
            continue;
        }

        campos = linhaArquivo.Split(new string[] { ";" }, StringSplitOptions.None);

        registro = dt.NewRow();
        try
        {
            bool resultNumero;
            int numero;

            resultNumero = int.TryParse(campos[4], out numero);
            registro["Numero"] = numero;

            if (!resultNumero)
            {
                Label1.Visible = true;
                Label1.Text = "Campo numero não esta vindo como valor inteiro";
            }

            bool resultTipoPessoa;
            int tipoPessoa;

            resultTipoPessoa = int.TryParse(campos[2], out tipoPessoa);
            registro["TipoPessoa"] = tipoPessoa;

            if (!resultTipoPessoa || tipoPessoa > 1)
            {
                Label2.Visible = true;
                Label2.Text = "Campo Tipo Pessoa com valor inválido";
            }

            bool resultEstado;
            int estado;

            resultEstado = int.TryParse(campos[7], out estado);
            registro["Estado"] = estado;

            if (!resultEstado)
            {
                Label3.Visible = true;
                Label3.Text = "Campo Codigo Estado não esta vindo como valor inteiro";
            }

            if (campos[0].Length > 70)
            {
                registro["Nome"] = "";
                Label4.Visible = true;
                Label4.Text = "Campo Nome excedendo limite de caracteres";
            }
            else
            {
                registro["Nome"] = campos[0].ToString().Trim();
            }

            if (fgCpfCheck(campos[1]) == false)
            {
                registro["Documento"] = "";
                Label5.Visible = true;
                Label5.Text = "CPF Inválido";
            }
            else
            {
                registro["Documento"] = campos[1].Trim().ToString();
            }

            if (campos[3].Length > 100)
            {
                registro["Endereco"] = "";
                Label6.Visible = true;
                Label6.Text = "Campo Endereco excedendo limite de caracteres";
            }
            else
            {
                registro["Endereco"] = campos[3].Trim().ToString();
            }

            if (campos[5].Length > 20)
            {
                registro["Complemento"] = "";
                Label7.Visible = true;
                Label7.Text = "Campo Complemento excedendo limite de caracteres";
            }
            else
            {
                registro["Complemento"] = campos[5].Trim().ToString();
            }

            if (campos[6].Length > 60)
            {
                registro["Bairro"] = "";
                Label8.Visible = true;
                Label8.Text = "Campo Bairro excedendo limite de caracteres";
            }
            else
            {
                registro["Bairro"] = campos[6].Trim().ToString();
            }

            if (campos[8].Length > 100)
            {
                registro["Cidade"] = "";
                Label9.Visible = true;
                Label9.Text = "Campo Cidade excedendo limite de caracteres";
            }
            else
            {
                registro["Cidade"] = campos[8].Trim().ToString();
            }

            if (campos[9].Length > 10)
            {
                registro["CEP"] = "";
                Label10.Visible = true;
                Label10.Text = "Campo CEP excedendo limite de caracteres";
            }
            else
            {
                registro["CEP"] = campos[9].Trim().ToString();
            }

            if (Label2.Visible == false)
            {
                dt.Rows.Add(registro);
            }
            else
            {
                Label11.Visible = true;
                Label11.Text = "Operação não realizada!";
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }

    return dt;
}

I'm passing this method over to this other method ... that it will access the database and import the .csv file.

public void ProcessarImportacao(string caminho)
        {
            using (SqlConnection conexao = new SqlConnection(ConfigurationManager.ConnectionStrings["MC1_DB_TREINAMENTOConnectionString"].ConnectionString))
            {
                conexao.Open();

                using (SqlBulkCopy bc = CreateSqlBulkCopy(conexao))
                {
                    bc.WriteToServer(RetornaDtPreenchido(caminho));
                }
            }
        }
    
asked by anonymous 17.09.2014 / 22:12

1 answer

2

One possible solution would be:

int resultEstado = int.TryParse(campos[7], out estado); 
registro["Estado"] = estado;

if(!resultEstado) 
{ 
    Label3.Visible = true; 
    Label3.Text = "Campo Codigo Estado não esta vindo como valor inteiro"; 
}
else
{
    //abre conexao com o banco
    //faz a operação com o banco passando o campo 
    //id registro["Estado"]

    if(dr.HasRows())
    {
        Label3.Visible = true; 
        Label3.Text = "Campo Codigo Estado já existente no banco de dados"; 

    }
    else
    {
        // faz o insert
    }
}

If you have any questions about how to do the operation with the bank, please reply to me as I will help you.

Att.

    
17.09.2014 / 22:37