Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro Diniz

[Resolvido] Importar dados de planilha excel para Sql Server

Recommended Posts

Nao sei onde estou errando, consigo carregar o gridview com os dados do excel mas nao consigo gravar no db!

 

{
		//DataTable dataTable = new DataTable();
		DataSet ds = new DataSet();
		string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c://alunos.xls;Extended Properties='Excel 8.0;HDR=YES;'";
		// Criando adaptador que busca todos os registros da planilha 

		OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Plan1$]", connectionString);
		{
			da.Fill(ds);
		}

		GridView1.DataSource = ds;
		GridView1.DataBind();

		//Declara as Variáveis para a conexão do SQL Server 
		SqlConnection conn = new SqlConnection(Dados.daescola);

		//Inserir na tabela 
		SqlCommand ins = new SqlCommand("Insert Into alunos (alu_nome) Values (@Nome)", conn);

		//Abrindo a conexão do SQL 

		try
		{
			conn.Open();

			foreach(DataRow dr in ds.Tables[0].Rows)
			{				
				ins.Parameters.Clear();
				ins.Parameters.AddWithValue("@Nome", dr["alu_nome"]);
				ins.ExecuteNonQuery();
			}
			Label1.Text = "OK carregou";
		}
		catch
		{
			Label1.Text = "nao carregou";
		}
		finally
		{
			conn.Close();
		}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei onde estou errando, consigo carregar o gridview com os dados do excel mas nao consigo gravar no db!

 

{
		//DataTable dataTable = new DataTable();
		DataSet ds = new DataSet();
		string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c://alunos.xls;Extended Properties='Excel 8.0;HDR=YES;'";
		// Criando adaptador que busca todos os registros da planilha 

		OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Plan1$]", connectionString);
		{
			da.Fill(ds);
		}

		GridView1.DataSource = ds;
		GridView1.DataBind();

		//Declara as Variáveis para a conexão do SQL Server 
		SqlConnection conn = new SqlConnection(Dados.daescola);

		//Inserir na tabela 
		SqlCommand ins = new SqlCommand("Insert Into alunos (alu_nome) Values (@Nome)", conn);

		//Abrindo a conexão do SQL 

		try
		{
			conn.Open();

			foreach(DataRow dr in ds.Tables[0].Rows)
			{				
				ins.Parameters.Clear();
				ins.Parameters.AddWithValue("@Nome", dr["alu_nome"]);
				ins.ExecuteNonQuery();
			}
			Label1.Text = "OK carregou";
		}
		catch
		{
			Label1.Text = "nao carregou";
		}
		finally
		{
			conn.Close();
		}
	}

 

o codigo funcionou, o erro era no nome do campo da tabela e nao conseguia descobrir pois ia direto para catch.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, é interessante no catch usarmos uma variável que é alimentada com a mensagem de erro, fica mais fácil.

Ex.:

try{
   //SEU CÓDIGO
}
catch (Exception ex) {
   Label1.Text = "nao carregou, mensagem: "+ ex.Message.Trim();
}

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.