Como ligar a uma base de dados e executar um comando utilizando 2005 ADO.NET e Visual C# 2005 ou utilizando o ADO.NET e Visual C# .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 306636
Para obter uma Microsoft Visual Basic .NET versão deste artigo, consulte 301075.
Para obter uma Microsoft Visual J# .NET versão deste artigo, consulte 322045.

Este artigo faz referência à seguintes espaços de nomes Microsoft .NET Framework Class Library:
  • System.data
  • System.data.SqlClient
Sumário
Este artigo passo a passo mostra como utilizar ADO.NET 2005 ou o ADO.NET para estabelecer ligação com uma base de dados e executar um comando.

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Microsoft Windows Server 2003, Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, ou Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 ou o Microsoft Visual Studio .NET
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
  • Terminologia de base de dados
  • Linguagem de consulta estruturada (SQL)

Como executar um comando

Comandos são emitidos bases de dados para efectuar acções com arquivos de dados e para incluir qualquer instrução que pode ser emitida relativamente a uma base de dados. Pode utilizar OleDbCommand ou as classes SqlCommand para obter um comando para o arquivo de dados e OleDbCommand pode ser específicas para o arquivo de dados. Este artigo demonstra ambas a classe de SqlClient (para ligar a um computador que esteja a executar o Microsoft SQL Server) e a classe OleDb (para qualquer base de dados que tenha um controlador de OLE DB ou ODBC disponível) dentro do ADO.NET. No entanto, o código geralmente é a mesma para ambos.

Com o ADO, pode emitir comandos através do comando , a ligação ou o objecto de conjunto de registos . No ADO.NET, apenas os objectos de comando ( SqlCommand ou OleDbCommand ) executar comandos.

Para executar um comando, siga estes passos:
  1. Siga estes passos para criar uma nova aplicação de consola no Microsoft Visual C# 2005 ou no Microsoft Visual C# .NET:
    1. Inicie o Microsoft Visual Studio 2005 ou Microsoft Visual Studio NET..
    2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
    3. Na caixa de diálogo Novo projecto , clique em Visual C# Projects em Project Types e, em seguida, clique em Aplicação de consola em modelos .

      Nota No Visual Studio 2005, clique em Visual C# em Tipos de projecto na caixa de diálogo Novo projecto e, em seguida, clique em Aplicação de consola em modelos .
  2. Certifique-se de que o projecto contém uma referência ao espaço de nomes System.data e adicione uma referência se não tiver.
  3. Utilize a instrução utilizar espaços de nomes System.data e de sistema para que não é necessário que qualificar declarações os espaços de nomes mais tarde no código. Também pode incluir System.data.SqlClient ou System.data.OLEDB , dependendo do que estiver a utilizar.
    using System;using System.Data;using System.Data.SqlClient;					
  4. Antes de poder criar uma ligação a uma base de dados, tem de ter uma cadeia de ligação. As cadeias de ligação contém todas as informações que precisa de estabelecer uma ligação de base de dados, incluindo o nome do servidor, o nome de base de dados, o ID de utilizador e a palavra-passe. Por exemplo, a seguinte cadeia de ligação aponta para um computador local que está a executar o SQL Server:

    Para ligações de OleDb:

    Nota ID de utilizador <uid> deve ter permissões adequadas para efectuar estas operações na base de dados.
    Provider=SQLOLEDB.1;User ID=<UID>;Initial Catalog=pubs;Data Source=(local)						
    ligações para SqlClient:
    User ID=<UID>;Initial Catalog=pubs;Data Source=(local)						
    cadeia NOTA: se necessitar de mais ajuda para determinar a ligação da base de dados, procure "ConnectionString" na biblioteca da MSDN (Microsoft Developer Network) no:
  5. O Visual Studio cria uma classe estática e um procedimento Main() vazio. Declarar uma variável de cadeia e guarde a cadeia de ligação apropriada para a base de dados neste procedimento.

    Nota ID de utilizador <uid> deve ter permissões adequadas para efectuar estas operações na base de dados.
    class Class1{	static void Main(string[] args)	{		string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";	}}					
  6. Utilizando esta cadeia de ligação, crie um novo objecto OleDbConnection ou SqlConnection e chamar o método Open para estabelecer uma ligação à base de dados:
    SqlConnection objConn = new SqlConnection(sConnectionString);objConn.Open();					
  7. Criar um objecto SqlCommand ou OleDbCommand e passar o comando que pretende executar e o objecto de ligação que criou no passo anterior. O seguinte código de exemplo passa na instrução INSERT:
    string sSQL = "INSERT INTO Employee " +   "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " +   "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";SqlCommand objCmd = new SqlCommand(sSQL,objConn);					
  8. Depois de criar o objecto SqlCommand ou OleDbCommand , pode chamar o método ExecuteNonQuery para executar o comando que representa. ExecuteNonQuery foi concebido para comandos que não devolvem resultados (tais como as instruções INSERT, UPDATE e DELETE). Se executa a instrução sem deitar uma excepção (consulte o seguinte código), o comando foi executado com êxito em relação à base de dados.
    objCmd.ExecuteNonQuery();					
  9. Guarde o projecto. No menu Debug , clique em Iniciar para executar o comando em relação à base de dados.

Como utilizar parâmetros

Quando executar comandos relativamente a uma base de dados (tais como o UPDATE, o INSERT e o DELETE instruções ou chamadas a procedimentos armazenados), estes comandos são parametrizados frequentemente. Isto permite que o comando a ser criada uma vez mas executada várias vezes com valores diferentes que são inseridos em vez de parâmetros. Considere a instrução DELETE correspondente à instrução INSERT utilizado na secção anterior:
string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id"				
o nome do parâmetro ("@ id_emp") nesta instrução DELETE representa um parâmetro que pode substituir por valores diferentes sempre que executar o comando.

Para utilizar parâmetros com o comando, siga estes passos:
  1. Crie o objecto OleDbConnection ou SqlConnection , tal como fez na secção "How to run a command".
  2. Substituem os valores com marcadores de posição (por exemplo, "@ id_emp" ou "@ fname") para que o texto de comandos utiliza parâmetros. Consulte a declaração DELETE antes destes passos para obter um exemplo.
  3. Criar o objecto OleDbCommand ou SqlCommand e passar no objecto de ligação criados no primeiro passo e o texto de comando que contém os marcadores de posição parâmetro.
  4. Para cada parâmetro, adicione um objecto parâmetro à colecção de parâmetros do objecto de comando. Para cada parâmetro, tem de especificar um nome e o tipo de dados.
    objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);					
  5. Procedimentos armazenados podem ter parâmetros que devolvem valores e parâmetros de saída. Também tem de definir um valor para cada parâmetro de entrada antes de poder executar a consulta:
    objCmd.Parameters["@emp_id"].Value = "MSD12923F";					
  6. Executar a consulta da seguinte forma:
    try {	objCmd.ExecuteNonQuery();}catch (System.Exception e) {	Console.WriteLine(e.Message);}Console.WriteLine("Record Deleted");					

Listagem de código completo

Nota Tem de alterar ID de utilizador = <uid> para os valores correctos antes de executar este código. Certifique-se de que <uid> tem as permissões adequadas para efectuar esta operação na base de dados.
using System;using System.Data;using System.Data.SqlClient;    /// <summary>    /// Summary description for Class1.    /// </summary>    class Class1    {	static void Main(string[] args)	{		AddRecord();		RemoveRecord();		Pause();	}	static void Pause()	{		Console.WriteLine("Press Enter To Continue....");		Console.ReadLine();	}	static void AddRecord()	{		string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";		SqlConnection objConn = new SqlConnection(sConnectionString);		objConn.Open();		string sSQL = "INSERT INTO Employee " + 		  "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + 	          "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";		SqlCommand objCmd = new SqlCommand(sSQL,objConn);		try 		{			objCmd.ExecuteNonQuery();			}		catch (System.Exception e) 		{			Console.WriteLine(e.Message);		}		Console.WriteLine("Record Added");	}	static void RemoveRecord()	{		string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";		SqlConnection objConn = new SqlConnection(sConnectionString);		objConn.Open();		string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id";		SqlCommand objCmd = new SqlCommand(sSQL,objConn);		objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);		objCmd.Parameters["@emp_id"].Value = "MSD12923F";		try 		{			objCmd.ExecuteNonQuery();		}		catch (System.Exception e) 		{			Console.WriteLine(e.Message);		}		Console.WriteLine("Record Deleted");	}} 				
Referências
Para obter mais informações sobre como utilizar o ADO.NET, comandos de base de dados e procedimentos armazenados, visite os seguintes Web sites da Microsoft:
SQL Server 2000 armazenadas procedimentos
http://msdn2.microsoft.com/en-us/library/aa214299(SQL.80).aspx

"Consultar no acesso a dados," coluna Vozes da MSDN
http://msdn2.microsoft.com/en-us/library/ms810295.aspx

ADO.NET para programadores de ADO
http://msdn2.microsoft.com/en-us/library/ms973217.aspx

MSDN online .NET Developer Center
http://msdn.microsoft.com/net
Para mais informações, consulte o seguinte livro:
Sustenido, João e a João Jagger. Microsoft Visual C# .NET Step by Step. A Microsoft Press, 2003.
Para mais informações, consulte o seguinte curso de formação & certificação da Microsoft:

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 306636 - Última Revisão: 08/17/2007 02:22:07 - Revisão: 4.9

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005

  • kbmt kbhowtomaster kbsqlclient kbsystemdata KB306636 KbMtpt
Comentários