Você está offline; aguardando reconexão
Entrar

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.

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

Warning: This article has been translated automatically

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