ID do artigo: 320141 - Última revisão: sexta-feira, 26 de dezembro de 2003 - Revisão: 5.4

COMO: Recuperar um valor de identidade de um registro recém-inserido do SQL Server usando o Visual Basic .NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo passo a passo descreve como recuperar o valor de identidade quando você adiciona um registro em uma tabela do SQL Server com um campo de identidade.

Requisitos


Este exemplo usa o banco de dados Northwind no SQL Server e recupera os valores de identidade somente para tabelas com nenhuma tabela filho. Ele também pode ser usado com o MSDE; no entanto, o banco de dados Northwind não está incluído com o MSDE. Para obter informações sobre como usar este procedimento com o MSDE, consulte a seção Troubleshooting deste artigo.


Um campo de identidade do SQL Server é um campo de número automática que você pode definir um valor incremental para. Por esse motivo, não é possível inserir ou atualizar um valor neste campo, desde que Identity_ inserir está desativado, que é o padrão para um campo de identidade do SQL Server.

Exemplo

  1. Inicie o Visual Studio.NET e crie um novo projeto Visual Basic Windows Application:
    1. No menu arquivo , aponte para novo e, em seguida, clique em Project .
    2. Na caixa de diálogo New Project , clique em Projetos do Visual Basic em Project Types e clique em Windows Application em modelos .
  2. Arraste um botão no formulário do Windows Forms caixa de ferramentas.
  3. Na parte superior da janela de código, adicione a seguinte linha:
    Imports System.Data.SqlClient
  4. Evento de clique o seguinte código para o botão Colar:
    Dim ds As New DataSet()
    
    Dim cnNorthwind As New SqlConnection("server=(local);integrated security=sspi;database=Northwind")
    Dim cmSelect As New SqlCommand("select employeeid,firstname,lastname from employees", cnNorthwind)
    
    Dim stInsert As String
    stInsert = "insert into employees (firstname,lastname) values(@Firstname,@Lastname);select employeeid,firstname,lastname from employees where employeeID = @@identity"
    Dim cmInsert As New SqlCommand()
    
    With cmInsert
       .CommandText = stInsert
       .CommandType = CommandType.Text
       .Connection = cnNorthwind
       .Parameters.Add(New SqlParameter("@firstname", Data.SqlDbType.VarChar, 25, "firstname"))
       .Parameters.Add(New SqlParameter("@lastname", Data.SqlDbType.VarChar, 25, "Lastname"))
    End With
    
    Dim daNorthwind As New SqlDataAdapter()
    With daNorthwind
       .SelectCommand = cmSelect
       .InsertCommand = cmInsert
    End With
    
    daNorthwind.Fill(ds, "employees")
    Dim dr As DataRow
    dr = ds.Tables("employees").NewRow
    dr(1) = "John"
    dr(2) = "Doe"
    ds.Tables("employees").Rows.Add(dr)
            
    daNorthwind.Update(ds, "employees")
    ds.AcceptChanges()
    Dim i As Int16
    For i = 0 To ds.Tables("Employees").Rows.Count - 1
        With ds.Tables("Employees")
           Debug.WriteLine("EmployeeID: " & .Rows(i)(0).ToString)
           Debug.WriteLine("Employee Firstname: " & .Rows(i)(1).ToString)
           Debug.WriteLine("Employee LastName: " & .Rows(i)(2).ToString)
        End With
    Next i
    					
  5. Altere a seqüência de conexão para refletir suas informações de SQL Server ou MSDE.
  6. Execute o aplicativo.
  7. Clique no botão.

    A informação para o campo de identidade do registro recém-inserido é exibida.

Solução de problemas

Antes de usar este procedimento, com o MSDE você deve usar o DTS (Data Transformation Services) para importar o banco de dados Northwind do SQL Server ou do Microsoft Access.

Referências

Para obter informações adicionais sobre como retornar o valor de identidade para registros filho, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
320301  (http://support.microsoft.com/kb/320301/EN-US/ ) COMO: Atualizar dados pai-filho com coluna de identidade de um aplicativo Windows Forms por meio de um serviço da Web
Para obter informações adicionais sobre como usar o DTS, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
242377  (http://support.microsoft.com/kb/242377/EN-US/ ) Como usar o Data Transformation Services (DTS)
Para obter informações adicionais sobre como converter um banco de dados Microsoft Access para SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
237980  (http://support.microsoft.com/kb/237980/EN-US/ ) COMO: Converter um banco de dados do Access para o SQL Server
Para obter informações adicionais sobre como recuperar colunas de identidade no Visual Basic 6.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
170147  (http://support.microsoft.com/kb/170147/EN-US/ ) COMO: Recuperar a coluna de identidade após inserir usando RDO



A informação contida neste artigo aplica-se a:
  • Microsoft ADO.NET 1.1
  • Microsoft ADO.NET 1.0
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft Data Engine 1.0
Palavras-chave: 
kbmt kbhowtomaster KB320141 KbMtpt
Tradução automáticaTraduçã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 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: 320141  (http://support.microsoft.com/kb/320141/en-us/ )