Você está offline; aguardando reconexão

COMO: Chamada SQL Server procedimentos armazenados no ASP.NET usando Visual translation from VPE for Csharp .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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 320916
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 306574.
Para uma versão deste artigo do Microsoft Visual J#. NET, consulte 320622.

NESTA TAREFA

Sumário
Este artigo demonstra como usar o ASP.NET e ADO.NET com o Visual translation from VPE for Csharp .NET para criar e chamar um Microsoft SQL Server armazenados procedimento com um parâmetro de entrada e um parâmetro de saída.

O exemplo de código neste artigo primeiro verifica se o procedimento armazenado que você irá criar existe no banco de dados pubs , que é incluído com uma instalação padrão do Microsoft SQL Server. Se o procedimento armazenado não existir, o código cria um procedimento armazenado que aceita um parâmetro para procurar a tabela autores com base no nome do último e retorna o linhas correspondentes e o número de linhas que são retornados em um parâmetro de saída.

Este artigo também demonstra como criar um formulário da Web que fornece uma interface de usuário simples. O formulário da Web contém os seguintes itens:
  • Uma caixa de texto no qual o usuário digita o critério de pesquisa.
  • Um controle DataGrid que exibe os resultados da pesquisa.
  • Um controle Label que exibe o número de registros retornados.
  • Um controle de botão que chama o procedimento armazenado quando o botão é clicado.
back to the top

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft SQL Server versão 7.0 ou posterior
  • Microsoft Visual Studio .NET
  • Microsoft Visual translation from VPE for Csharp .NET
  • Permissões para criar o procedimento armazenado no banco de dados
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • ASP.NET
  • Procedimentos armazenados do SQL Server
back to the top

Criar um projeto do ASP.NET e adicionar controles

Nesta seção, você pode criar um projeto do ASP.NET e criar a interface do usuário básica. Observe que essas etapas usam código Microsoft Visual translation from VPE for Csharp .NET. Para criar o projeto, execute essas etapas:
  1. Clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio .NET e, em seguida, clique em Microsoft Visual Studio .NET .
  2. Na página Visual Studio .NET iniciar, clique em New Project .
  3. Na caixa de diálogo New Project , clique em projetos do Visual translation from VPE for Csharp em Tipos de projeto e, em seguida, clique em ASP.NET Web Application em modelos .
  4. Na caixa nome , digite um nome para seu aplicativo da Web e, em seguida, clique em OK .
  5. Adicione os seguintes controles de servidor para o formulário da Web e defina as propriedades conforme eles são listados na tabela:
    ControlePropriedade IDPropriedade de texto
    rótulo lblLastNameDigite o sobrenome do autor:
    TextBox txtLastName%
    botão btnGetAuthorsObter autores
    rótulo lblRowCount(Contagem de linha)

  6. Arraste um controle DataGrid do servidor da caixa de ferramentas para o formulário da Web e defina a propriedade Name para GrdAuthors .
  7. Clique com o botão direito do mouse a grade e, em seguida, clique em AutoFormatação .
  8. Clique em Professional 1 para o esquema e, em seguida, clique em OK .
back to the top

Criar o GetAuthorsByLastName procedimento armazenado

Use o seguinte código Transact-SQL para criar o procedimento GetAuthorsByLastName armazenado:
Use PubsGoCreate Procedure GetAuthorsByLastName (@au_lname varchar(40), @RowCount int output)  as select * from authors where au_lname like @au_lname; /* @@ROWCOUNT returns the number of rows that are affected by the last statement. */ select @RowCount=@@ROWCOUNT				
este código inclui dois parâmetros: @ au_lname e @ RowCount. O parâmetro @ au_lname é um parâmetro de entrada que obtém a seqüência de pesquisa para realizar uma pesquisa "como" na tabela autores . O parâmetro @ RowCount é um parâmetro de saída que usa a variável @@ ROWCOUNT para obter as linhas afetadas.

back to the top

Criar e executar o procedimento armazenado

Para acessar bancos de dados SQL Server, você deve importar o namespace System.Data.SqlClient , que fornece novos objetos, como SqlDataReader e os objetos SqlDataAdapter . Você pode usar SqlDataReader para ler um fluxo somente de encaminhamento de linhas de um banco de dados do SQL Server. DataAdapter representa um conjunto de comandos de dados e uma conexão de banco de dados que você pode usar para preencher o objeto DataSet e para atualizar um banco de dados do SQL Server.

ADO.NET também apresenta o objeto DataSet , que é uma representação residente na memória dos dados que fornece um modelo de programação consistente, relacional independentemente da fonte de dados. O código nesta seção usa todos esses objetos.
  1. Clique duas vezes o formulário da Web.
  2. Adicione o código a seguir (as diretivas usando ) à seção Declaração de seu formulário da Web, que aparece na parte superior da janela código:
    using System.Data;using System.Data.SqlClient;					
  3. Para certificar-se o procedimento armazenado existe e criar um novo procedimento armazenado, use um objeto SqlCommand com um objeto do SqlDataReader . Você pode usar o SqlCommand para executar os comandos SQL com o banco de dados. Em seguida, chame o método ExecuteReader de SqlCommand para retornar SqlDataReader , que contém linhas correspondentes para a sua consulta.

    Adicione o seguinte código no evento Page_Load de formulário da Web:
    	private void Page_Load(object sender, System.EventArgs e)	{		// Only run this code the first time the page is loaded.		// The code inside the IF statement is skipped when you resubmit the page.		if (!IsPostBack)		{			//Create a connection to the SQL Server; modify the connection string for your environment			//SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;Trusted_Connection=yes");			SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;UID=myUser;PWD=myPassword;");			// Create a Command object, and then set the connection.			// The following SQL statements check whether a GetAuthorsByLastName  			// stored procedure already exists.			SqlCommand MyCommand = new SqlCommand("select * from sysobjects where id = object_id(N'GetAuthorsByLastName')" +			"  and OBJECTPROPERTY(id, N'IsProcedure') = 1", MyConnection);			// Set the command type that you will run.			MyCommand.CommandType = CommandType.Text;			// Open the connection.			MyCommand.Connection.Open();			// Run the SQL statement, and then get the returned rows to the DataReader.			SqlDataReader MyDataReader = MyCommand.ExecuteReader();			// If any rows are returned, the stored procedure that you are trying 			// to create already exists. Therefore, try to create the stored procedure			// only if it does not exist.			if(!MyDataReader.Read())			{				MyCommand.CommandText = "create procedure GetAuthorsByLastName" + 					" (@au_lname varchar(40), select * from authors where" +					" au_lname like @au_lname; select @RowCount=@@ROWCOUNT";				MyDataReader.Close();				MyCommand.ExecuteNonQuery();			}			else			{				MyDataReader.Close();			}			MyCommand.Dispose();  //Dispose of the Command object.			MyConnection.Close(); //Close the connection.		}		// Add the event handler to the Button_Click event.		this.btnGetAuthors.Click += new System.EventHandler(this.btnGetAuthors_Click);	}					
  4. Chame o procedimento armazenado no evento Click do botão btnGetAuthors e, em seguida, use o objeto SqlDataAdapter para executar o procedimento armazenado. Você deve criar parâmetros para o procedimento armazenado e acrescentá-la à coleção parâmetros do objeto SqlDataAdapter .

    Adicione o seguinte código após o evento Page_Load :
    	private void btnGetAuthors_Click(object sender, System.EventArgs e)	{		//Create a connection to the SQL Server; modify the connection string for your environment.		//SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;Trusted_Connection=yes");		SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;UID=myUser;PWD=myPassword;");		//Create a DataAdapter, and then provide the name of the stored procedure.		SqlDataAdapter MyDataAdapter = new SqlDataAdapter("GetAuthorsByLastName", MyConnection);		//Set the command type as StoredProcedure.		MyDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;		//Create and add a parameter to Parameters collection for the stored procedure.		MyDataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@au_lname", SqlDbType.VarChar, 40));		//Assign the search value to the parameter.		MyDataAdapter.SelectCommand.Parameters["@au_lname"].Value = (txtLastName.Text).Trim();		//Create and add an output parameter to the Parameters collection. 		MyDataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@RowCount", SqlDbType.Int, 4));		//Set the direction for the parameter. This parameter returns the Rows that are returned.		MyDataAdapter.SelectCommand.Parameters["@RowCount"].Direction = ParameterDirection.Output;		//Create a new DataSet to hold the records.		DataSet DS = new DataSet();				//Fill the DataSet with the rows that are returned.		MyDataAdapter.Fill(DS, "AuthorsByLastName");		//Get the number of rows returned, and assign it to the Label control.		//lblRowCount.Text = DS.Tables(0).Rows.Count().ToString() & " Rows Found!"		lblRowCount.Text = MyDataAdapter.SelectCommand.Parameters[1].Value + " Rows Found!";		//Set the data source for the DataGrid as the DataSet that holds the rows.		GrdAuthors.DataSource = DS.Tables["AuthorsByLastName"].DefaultView;		//NOTE: If you do not call this method, the DataGrid is not displayed!		GrdAuthors.DataBind();		MyDataAdapter.Dispose(); //Dispose the DataAdapter.		MyConnection.Close(); //Close the connection.	}					
  5. No Solution Explorer, clique a página .aspx com o botão direito do mouse e, em seguida, clique em Definir como página inicial .
  6. Salvar o projeto e, em seguida, clique em Iniciar no Visual Studio. NET. Observe que o projeto é compilado e que a página padrão é executada.
  7. Digite o sobrenome do autor na caixa de texto e, em seguida, clique em Obter autor . Observe que o procedimento armazenado é chamado e as linhas retornadas preencher o DataGrid .

    Você pode fornecer seqüências de pesquisa de tipo do SQL Server como G % , que retorna todos os autores por últimos nomes que começam com a letra "g".
back to the top

Solução de problemas

  • Se você não pode se conectar ao banco de dados, certifique-se que ConnectionString corretamente aponta para o servidor que está executando o SQL Server.
  • Se você pode se conectar ao banco de dados, mas se você tiver problemas ao tentar criar o procedimento armazenado, verifique se você tem as permissões corretas para criar procedimentos armazenados no banco de dados ao qual você está se conectando.
back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 320916 - Última Revisão: 12/05/2003 22:30:57 - Revisão: 3.3

Microsoft ADO.NET (included with the .NET Framework), Microsoft ADO.NET 1.1, Microsoft ASP.NET (included with the .NET Framework), Microsoft ASP.NET 1.1, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition

  • kbmt kbhowtomaster kbsqlclient kbstoredproc kbsystemdata KB320916 KbMtpt
Comentários