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

Traduções de Artigos Traduções de Artigos
Artigo: 306636 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

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:
    http://msdn.microsoft.com/en-us/default.aspx
  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:
2389 Programação com o ADO.NET
http://www.microsoft.com/learning/syllabi/en-us/2389Bfinal.mspx

Propriedades

Artigo: 306636 - Última revisão: 17 de agosto de 2007 - Revisão: 4.9
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
Palavras-chave: 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB306636 KbMtpt
Tradução automática
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

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com