09/10/2008

Utilizar Base de Dados MySql em C#

Para fazer a ligação a base de dados MySql vai ser necessário fazer o download do Conector Ado.net (http://dev.mysql.com/downloads/connector/net/5.2.html) ,no meu caso e como vou utilizar o visual Studio 2008 vou utilizar a ultima versão deste mesmo conector.


Findo a instalação do conector vamos criar uma aplicação Windows .

So para informação se tiver a utilizar o visual studio 2008 a ligação a base de dados MySql pode ser feita sem ter que escrever uma única linha de código , esta maneira vou deixar para o leitor descobrir sozinho :-).


Para começar crie uma DataGrid no formulário inicial e dei-lhe um nome no meu caso vou-lhe chamar myDataGrid, de seguida deve adicionar a referencia do MySQL.Data para isso seleccione o menu Project e add Reference e escolha o componente .Net com o nome MySQL.Data .


Agora vamos então ao código ,começamos por adicionar o namespaces


using MySql.Data.MySqlClient ;

private MySqlConnection myCon;

private MySqlDataAdapter myAdapter;

private DataSet myDataSet;


public Form1()

{

InitializeComponent();

MostraDados();

}


Para criar uma ligação a base de dados e preencher a datagrid criei a seguinte função:


private void MostraDados()

{

myDataSet = new DataSet();

//Cria a Ligação atravez de uma string de ligação

myCon = new MySqlConnection("Persist Security Info=False;database=test;server=localhost;user id=UtilizadorTeste;Password=teste");

try

{

// E estabelecido uma ligação com a base de dados

myCon.Open();

}

catch (System.Exception e)

{

// Ocoreu erro quande se tentou estabelecer a ligação com a base de dados.

MessageBox.Show(e.Message.ToString());

}

//Valida se a ligação está estabelecida

if (myCon.State == ConnectionState.Open)

{

//cria o adapter utilizando uma instrução SQL de forma a aceder a tabela Carros

myAdapter = new MySqlDataAdapter("SELECT * FROM carros", myCon);

//preenche o dataset atravez do adapter criado

myAdapter.Fill(myDataSet, "carros");


//A DataGrid terá como DataSource o dataSet prenchido anterior

myDataGrid.DataSource = myDataSet;

//Queremos mostrar a tabela dos carros

myDataGrid.DataMember = "carros";

}

finalizaLigacao();

}


A primeira coisa que fiz na função foi criar uma nova ligação a base de dados utilizando o conector MySqlConnection onde foi passada a string de conexão e que é constituída pelos seguintes valores que vou passar a explicar :


Persist Security Info=False

Significa que os dados sensiveis como a password não são devolvidos quando a conexão está ligado ou esteve ligada.

database=test

O nome da Base de Dados que vamos utilizar ,no meu caso foi utilizada a base de dados Chamada test

server=localhost

Nome do endereço de rede do motor de base de dados MySql no qual queremos fazer a ligação;

user id=UtilizadorTeste

Nome da conta a utilizar para aceder a base de dados;

Password=teste

Senha da conta que vai ser usada para aceder a base de dados;

[1]Para mais detalhes sobre a constituição desta setring de ligação veja na documentação do conector.(http://dev.mysql.com/doc/refman/6.0/en/connector-net-examples-mysqlconnection.html)


Findo a criação da ligação vamo-nos ligar a base de dados utilizando para isso o método Open,caso de erro será mostrado o erro .

De seguida e no caso de já estarmos ligados a base de dados vamos utilizar o nosso dataAdater e aceder a tabela que queremos mostrar na nossa datagrid :


myAdapter = new MySqlDataAdapter("SELECT * FROM carros", myCon);


Neste momento só nos basta preencher o dataset com os dados myAdapter.Fill(myDataSet, "carros"); e para mostar no datagrid dizer que o sorce do datagrid é o nosso datasel e que queremos mostrar a tabela carros e vuolá já podemos ver os dados no nosso DataGrid.


Só para finalizar e não menos importante temos de fechar a ligação que estabelecemos para isso e chamado o método

finalizaLigacao(); .


private void finalizaLigacao() {

if (myCon.State == ConnectionState.Open)

myCon.Close();

}


Sem comentários: