Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Tarayıcınız desteklenmiyor

Siteyi kullanmak için tarayıcınızı güncelleştirmeniz gerekir.

Internet Explorer'ın en son sürümüne güncelleştirin

NASIL yapılır: Visual Basic .NET kullanarak kayıtlara erişim ekleme veritabanı sırasında kimlik değerini almak

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 815629
Bu makalenin Microsoft Visual C# .NET sürümü için bkz. 816112.

BU GÖREVDE

Özet
Bu adım adım makalede, bir Access veritabanından kimlik sütun değerini almak nasıl açıklanır.

Jet veritabanı birden çok deyim toplu iş komutları desteklemiyor Jet veritabanından kimlik değeri alınırken SQL Server, farklı olmasıdır. Jet OLE DB sürüm 4.0 sağlayıcısı @@Identity Seç sorgusunu destekler, bağlantınızı üzerinde oluşturulan otomatik gerçekleþtirme alanın değerini almanıza olanak tanır. @@Identity Seç sorgusunu çalıştırmak için başka bir OleDbCommand nesne kullanmanız önerilir. Bu makalede OleDbCommand ikinci bir kimlik sütun değerini almak için nasıl kullanılacağını açıklar.

Not:Bu özellik yalnızca Microsoft Jet OLEDB 4.0 veritabanları ile çalışır. Microsoft Jet OLEDB önceki sürümlerinde bu özelliği desteklemez.

başa dön
Daha fazla bilgi

Access veritabanına bağlan

Access veritabanına bağlanarak kimlik sütunu bir tablo oluşturmak için şu adımları izleyin:
  1. Microsoft Visual Studio .NET 2002 başlatın.
  2. Dosya menüsündeYeni' nin üzerine ve sonra Proje'yitıklatın.
  3. Proje türlerialtında VisualBasic projeleritıklatın. Şablonlar altındaConsole Application' i tıklatın. Varsayılan olarak, Module1.vb iscreated.
  4. Projeyi MyJetApplication olarak adlandırın ve sonra da Tamam' ı tıklatın.
  5. Varolan kodu aşağıdaki kodla değiştirin:
    Imports SystemImports System.DataImports System.Data.OleDbModule Module1   Sub Main()      ' Open Connection       Dim cnJetDB As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=YourAccessDatabase")      cnJetDB.Open()      ' If the test table does not exist, create the Table.      Dim strSQL As String      strSQL = "CREATE TABLE AutoIncrementTest " & _               "(ID int identity, Description varchar(40), " & _               "CONSTRAINT AutoIncrementTest_PrimaryKey PRIMARY KEY (ID))"      ' Command for creating Table.      Dim cmdJetDB As New OleDbCommand(strSQL, cnJetDB)      cmdJetDB.ExecuteNonQuery()      ' Create a DataAdaptor With Insert Command For inserting records      Dim oleDa As New OleDbDataAdapter("Select * from AutoIncrementTest", cnJetDB)      ' Command to Insert Records.      Dim cmdInsert As New OleDbCommand()      cmdInsert.CommandText = "INSERT INTO AutoIncrementTest (Description) VALUES (?)"      cmdInsert.Connection = cnJetDB      cmdInsert.Parameters.Add(New OleDbParameter("Description", OleDbType.VarChar, 40, "Description"))      oleDa.InsertCommand = cmdInsert      ' Create a DataTable      Dim dtTest As New DataTable()      oleDa.Fill(dtTest)      Dim drTest As DataRow      ' Add Rows to the Table      drTest = dtTest.NewRow      drTest("Description") = "This is a Test Row 1"      dtTest.Rows.Add(drTest)      drTest = dtTest.NewRow      drTest("Description") = "This is a Test Row 2"      dtTest.Rows.Add(drTest)         End SubEnd Module
  6. Access veritabanı için bağlantı dizesi topoint veri kaynağı adını değiştirin.


başa dön

Kimlik sütun değerini tuzak

Adımlarda, DataAdapter nesnesinin RowUpdated olay özetlemek için Access veritabanında bir tablonun sütun için oluşturulan kimlik sütun değerini yakalayabilirsiniz. RowUpdated olay başka bir Command nesnesi kullanarak sorgu @@IDENTITY Seç çalışacaktır; kimlik sütunu sorgu tarafından döndürülen değeri atar. Son olarak, sütun değeri kabul etmek üzere DataRow nesnesinin AcceptChanges yöntemini çağırın.

Tuzak kimlik sütun değerini, aşağıdaki adımları izleyin:
  1. Main yöntemi @@IDENTITY SEÇMEK sorgu için ikinci bir OleDbCommand nesnesi oluşturmak için önce aşağıdaki kodu ekleyin:
       ' Create OleDbCommand for SELECT @@IDENTITY statement   Private cmdGetIdentity As OleDbCommand
  2. OleDbCommand sınıfın yeni bir örneğini oluşturmak için Main yöntemine aşağıdaki kodu ekleyin:
          ' Create another command to get IDENTITY value.      cmdGetIdentity = New OleDbCommand()      cmdGetIdentity.CommandText = "SELECT @@IDENTITY"      cmdGetIdentity.Connection = cnJetDB
  3. RowUpdated olay işleme Main yöntemine aşağıdaki kodu ekleyin:
          ' Delegate for handling RowUpdated event.      AddHandler oleDa.RowUpdated, AddressOf HandleRowUpdated
  4. Verileri güncelleştirmek için Main yöntemine aşağıdaki kodu ekleyin. RowUpdated olayı, Update yöntemi çağrıldıktan sonra oluşturulur.
          ' Update the Data      oleDa.Update(dtTest)
  5. Aşağıdaki kod, AutoIncrementTest tabloyu bırakıp kaynakları serbest bırakmak için Main yöntemine ekleyin:
          ' Drop the table      cmdJetDB.CommandText = "DROP TABLE AutoIncrementTest"      cmdJetDB.ExecuteNonQuery()      ' Release the resources.      cmdGetIdentity.Dispose()      cmdGetIdentity = Nothing      cmdInsert.Dispose()      cmdInsert = Nothing      cmdJetDB.Dispose()      cmdJetDB = Nothing      cnJetDB.Close()      cnJetDB.Dispose()      cnJetDB = Nothing
  6. Module1 aşağıdaki RowUpdated olay işleyicisi kodunu ekleyin:
       ' Event handler for RowUpdated event.   Private Sub HandleRowUpdated(ByVal sender As Object, ByVal e As OleDbRowUpdatedEventArgs)      If e.Status = UpdateStatus.Continue AndAlso e.StatementType = StatementType.Insert Then         ' Get the Identity column value         e.Row("ID") = Int32.Parse(cmdGetIdentity.ExecuteScalar().ToString())         Debug.WriteLine(e.Row("ID"))         e.Row.AcceptChanges()      End If   End Sub
  7. Hata ayıklama menüsünde, uygulama çalıştırmak içinBaşlat ' ı tıklatın. Output penceresinde kimlik sütun değerleri aredisplayed.
başa dön

Tam kod listesi

Imports SystemImports System.DataImports System.Data.OleDbModule Module1   ' Create OleDbCommand for SELECT @@IDENTITY statement   Private cmdGetIdentity As OleDbCommand   Sub Main()      ' Open Connection       Dim cnJetDB As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=YourAccessDatabase")      cnJetDB.Open()      ' If the test table does not exist then create the Table      Dim strSQL As String      strSQL = "CREATE TABLE AutoIncrementTest " & _               "(ID int identity, Description varchar(40), " & _               "CONSTRAINT AutoIncrementTest_PrimaryKey PRIMARY KEY (ID))"      ' Command for Creating Table      Dim cmdJetDB As New OleDbCommand(strSQL, cnJetDB)      cmdJetDB.ExecuteNonQuery()      ' Create a DataAdaptor With Insert Command For inserting records      Dim oleDa As New OleDbDataAdapter("Select * from AutoIncrementTest", cnJetDB)      ' Command to Insert Records      Dim cmdInsert As New OleDbCommand()      cmdInsert.CommandText = "INSERT INTO AutoIncrementTest (Description) VALUES (?)"      cmdInsert.Connection = cnJetDB      cmdInsert.Parameters.Add(New OleDbParameter("Description", OleDbType.VarChar, 40, "Description"))      oleDa.InsertCommand = cmdInsert      ' Create a DataTable      Dim dtTest As New DataTable()      oleDa.Fill(dtTest)      Dim drTest As DataRow      ' Add Rows to the Table      drTest = dtTest.NewRow      drTest("Description") = "This is a Test Row 1"      dtTest.Rows.Add(drTest)      drTest = dtTest.NewRow      drTest("Description") = "This is a Test Row 2"      dtTest.Rows.Add(drTest)      ' Create another Command to get IDENTITY Value      cmdGetIdentity = New OleDbCommand()      cmdGetIdentity.CommandText = "SELECT @@IDENTITY"      cmdGetIdentity.Connection = cnJetDB      ' Delegate for Handling RowUpdated event      AddHandler oleDa.RowUpdated, AddressOf HandleRowUpdated      ' Update the Data      oleDa.Update(dtTest)      ' Drop the table      cmdJetDB.CommandText = "DROP TABLE AutoIncrementTest"      cmdJetDB.ExecuteNonQuery()      ' Release the Resources      cmdGetIdentity.Dispose()      cmdGetIdentity = Nothing      cmdInsert.Dispose()      cmdInsert = Nothing      cmdJetDB.Dispose()      cmdJetDB = Nothing      cnJetDB.Close()      cnJetDB.Dispose()      cnJetDB = Nothing   End Sub   ' Event Handler for RowUpdated Event   Private Sub HandleRowUpdated(ByVal sender As Object, ByVal e As OleDbRowUpdatedEventArgs)      If e.Status = UpdateStatus.Continue AndAlso e.StatementType = StatementType.Insert Then         ' Get the Identity column value         e.Row("ID") = Int32.Parse(cmdGetIdentity.ExecuteScalar().ToString())         Debug.WriteLine(e.Row("ID"))         e.Row.AcceptChanges()      End If   End SubEnd Module
Referanslar
Visual Basic 6.0 ilgili bir konu hakkında ek bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
232144 BİLGİ: Jet OLE DB sağlayıcı sürüm 4.0 destekleyen @@Identity seçin.
Daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:başa dön

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 815629 - Son İnceleme: 11/23/2013 19:57:00 - Düzeltme: 4.0

  • Microsoft ADO.NET 1.1
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • kbjet kbprogramming kbtsql kbsystemdata kbhowtomaster kbmt KB815629 KbMttr
Geri bildirim
n.protocol) + "//c.microsoft.com/ms.js'><\/script>");