Makale numarası: 316934 - Son Gözden Geçirme: 14 Temmuz 2004 Çarşamba - Gözden geçirme: 7.3

ADO.NET almak için kullanılır ve bir Excel çalışma kitabı Visual Basic .NET ile kayıtlarında Değiştir

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, Microsoft Excel çalışma kitabından veri almak, varolan bir çalışma kitabındaki verileri değiştirmek veya yeni bir çalışma kitabına veri eklemek için ADO.NET nasıl kullanabileceğiniz anlatılır. Excel çalışma kitaplarını ADO.NET ile erişmek için <a0></a0>, Jet OLE DB sağlayıcısını kullanabilirsiniz; bu makalede, Excel, hedef veri kaynağı olduğunda Jet OLE DB sağlayıcısını kullanmak üzere gereksinim duyduğunuz bilgileri sağlar.

Jet OLE DB sağlayıcı ile Microsoft Excel çalışma kitapları için nasıl kullanılır

Microsoft Jet veritabanı altyapısı Excel çalışma kitaplarını gibi diğer veritabanı dosya biçimlerinde yüklenebilir dizili sıralı erişim yöntemi (ISAM) sürücüleri verilere erişebilir. Microsoft Jet 4.0 OLE DB sağlayıcı tarafından desteklenen bir dış biçimler'i açmak için <a0></a0>, genişletilmiş özellikleri bağlantı için veritabanı türü belirtin. Jet OLE DB sağlayıcısı, Microsoft Excel çalışma kitapları için aşağıdaki veritabanı türlerini destekler:
Excel 3.0
Excel 4.0
Excel 5.0
Excel 8.0
Not: Microsoft Excel 5.0 ve 7.0 (95) çalışma kitaplarını Excel 5.0 kaynak veritabanı türünü kullanın ve Excel 8.0 kaynak veritabanı türü için Microsoft Excel 8.0) (97, 9.0 kullanın (2000) ve 10.0 (2002) çalışma kitaplarını. Bu makaledeki örneklerde Excel çalışma kitaplarını Excel 2000 ve Excel 2002 biçiminde kullanın.

Bağlantı dizesi

Jet OLE DB sağlayıcı kullanarak bir Excel çalışma kitabı erişmek için <a0></a0>, aşağıdaki sözdizimine sahip bir bağlantı dizesi kullanın:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended özellikleri = "Excel 8.0; HDR YES; ="
Bağlantı dizesinde çalışma kitabında Data Source parametresini tam yolunu ve dosya adını belirtin. Genişletilmiş Özellikler parametresi iki özellikler içeriyor olabilir: bir özellik için ISAM sürümü ve tablo üstbilgileri dahil olup olmadığını gösteren özellik.

Excel çalışma kitaplarına aralıktaki ilk satırın üstbilgi satırı (veya alan adlarını) varsayılan olarak açıktır. Üstbilgi ilk aralığı içermiyorsa, HDR belirtebilirsiniz bağlantı dizenizde genişletilmiş özelliklerinde NO =. HDR belirtirseniz, NO, Jet OLE DB Sağlayıcısı bağlantı dizesinde otomatik olarak <a1>adlar</a1> alanları için = (F1'e ilk alanı gösteren, F2, ikinci alan vb. temsil eder).

Veri türleri

Geleneksel bir veritabanından farklı olarak, Excel tablolardaki sütunların veri türlerini belirtmek için doğrudan bir yol yoktur. Bunun yerine, sekiz sütunun satırlarında bulunan bir Tahmin için alanın veri türü için OLE DB sağlayıcısı tarar. Bir (1) ile on altı (16) için MAXSCANROWS arasında bir değer belirterek, taranacak satır sayısı değiştirebileceğiniz bağlantı dizenizde genişletilmiş özelliklerinde ayarlama.

Tablo adlandırma kuralları

Bir Excel çalışma kitabında bir tablo (ya da aralığı) başvuru birkaç yolu vardır:
  • Dolar işareti) ve ardından <a1>Sayfa</a1> adını kullanmak (örneğin, [Sayfa1 $] veya [benim çalışma sayfası $]). Bu şekilde başvurulan BIR çalışma kitabını tabloya tüm kullanılan çalışma sayfası aralığını içerir.
    Seçin * [Sayfa1 $]'ndan
  • Bir aralığı, tanımlı bir ad (örneğin, [MyNamedRange]) kullanın:
    Seçin * [MyNamedRange]'ndan
  • Belirli bir adresle bir aralık kullanın (örneğin, [Sayfa1 $ A1: B10]):
    Seçin * gelen [Sayfa1 $ A1: B10]
Not: çalışma sayfası adının ardından dolar işareti Tablo mevcut bir göstergedir. Create New Workbooks and Tables açıklandığı gibi yeni bir tablo oluşturuyorsanız bölümünde bu makalede, dolar işaretini kullanın.

Kullanım Excel çalışma kitaplarına olarak ADO.NET veri kaynakları hakkında

Kayıtları alma

ADO.NET içinde iki yaklaşımdan birini kullanarak kayıtları veritabanından alabilir: DataReader veya bir DataSet ile.

Bir DataSet, bir veri kaynağından alınan kayıt önbelleğidir. DataSet, genellikle veritabanında nedir, kadarlık sınırlı sürüm veridir. Ancak, gerçek veri ile çalışmanın ve gerçek veritabanından bağlantısız kalır aynı şekilde çalışabilirsiniz. Veri alma yanı sıra, bir DataSet temel veritabanını güncelleştirme işlemleri gerçekleştirmek için de kullanılabilir.

Alternatif olarak, bir DataReader veritabanından salt okunur, salt ileri veri akışı için kullanabilirsiniz. Bir defada yalnızca bir satır, bugüne kadar bellekte olduğundan DataReader program, performans artışı kullanın ve sistem yükünü olan azaltır. Veri almak için büyük bir miktar ve temel veritabanında değişiklik yapmak istemiyorsanız, DataReader bir DataSet daha iyi bir seçimdir.

Ekleme ve kayıtları güncelleştirme

ADO.NET ile ekleyebilir ve üç yoldan birini kullanarak bir çalışma kitabındaki kayıtları güncelleştirmek:
  • Doğrudan bir kerede veya <a1>kayıtlar</a1> bir komutu çalıştırın. Bunu yapmak için <a0></a0>, bağlantınızda OLEDbCommand nesne oluşturabilir ve CommandText özelliğini, kayıtları eklemek için geçerli bir komut kümesi

    INSERT INTO [Sheet1$] (F1, F2) values ('111', 'ABC')
    kayıtları güncelleştirmek için bir komut veya

    UPDATE [Sheet1$] SET F2 = 'XYZ' WHERE F1 = '111'
    ve sonra da ExecuteNonQuery yöntemini çağırın.
  • Değişiklikleri, bir Excel çalışma kitabından bir tablo/sorgu doldurduktan ve daha sonra DataSet değişiklikleri çalışma kitabına yeniden çözümlemek için DataAdapterUpdate yöntemini çağıran bir DataSet yapın. Ancak, için DataAdapter parametreli ayarlamalısınız çözünürlüğünü değiştirme komutları için güncelleştirme yöntemini kullanmanın ınsertcommand
    INSERT INTO [Sheet1$] (F1, F2) values (?, ?)
    ve UpdateCommand:
    UPDATE [Sheet1$] SET F2 = ? WHERE F1 = ?
    OleDbDataAdapter anahtarı/dizin bilgileri için Excel çalışma kitaplarını sağlamaz, çünkü parametreli INSERT ve UPDATE komutları gereklidir; anahtarı/Endeks alanlarını, the CommandBuilder otomatik olarak komutları için oluşturamıyor.
  • Verileri başka bir veri verme, veri kaynağı Jet OLE DB sağlayıcısında kullanılabilir olduğunu bir Excel çalışma kitabına kaynak. Verileri metin dosyalarına, Jet OLE DB Sağlayıcısı'nı bu şekilde ile kullanabileceğiniz kaynaklar dahil Microsoft Access veritabanları ve kuşkusuz, başka bir Excel çalışma kitaplarını. Tek bir INSERT INTO komutla, başka bir tablo/sorgu, bir çalışma kitabına verebilirsiniz:
    INSERT INTO [Sheet1$] IN 'C:\Book1.xls' 'Excel 8.0;' SELECT * FROM MyTable"
    INSERT INTO gerektiren hedef tablo (veya çalışma sayfası) zaten var; veriler, hedef tabloya eklenir.

    SELECT kullanıyor olabilirsinizTablo/Sorgu bir çalışma kitabına vermek INTO:
    SELECT * INTO [Excel 8.0;Database=C:\Book1.xls].[Sheet1] FROM [MyTable]
    SELECT kullandığınızdaHedef Tablo veya çalışma kitabını yoksa INTO, sizin için oluşturulur. SELECT önce tablo yoksaINTO komutu, bir hata iletisi görüntülenir.
Sample Code makalenin bu bölümünde her ekleme ve bir çalışma kitabındaki kayıtları güncelleştirmek için aşağıdaki yaklaşımlardan biri gösterilmektedir.

Kayıtları silme

Jet OLE DB sağlayıcısı ekle ve bir Excel çalışma kitabındaki kayıtları güncelleştirmek sağlar, ancak DELETE operasyonlar izin vermiyor. Bir veya daha çok kayıt üzerinde bir DELETE işlemi gerçekleştirmeye çalışırsanız aşağıdaki hata iletisini alırsınız:
Bağlanmış tabloda veri silinmesi bu ISAM tarafından desteklenmiyor.
Bu sınırlama, Excel çalışma kitaplarını işlemden ilgili olarak veritabanı olarak devralınan ' dir.

Çalışma kitaplarını ve tablolar oluşturma

Bir Excel çalışma kitabında bir tablo oluşturmak için CREATE TABLE Çalıştır komutu:
CREATE TABLE Sheet1 (F1 char(255), F2 char(255))
bu komutu çalıştırdığınızda, yeni bir çalışma sayfasına komutta belirttiğiniz tablo adı ile oluşturulur. Çok bağlantı için çalışma kitabını yoksa, oluşturulur.

Sample Code bölümü, bir yeni çalışma kitabı ve bir tablo oluşturmak için CREATE TABLE komutunu nasıl kullanabileceğinizi göstermektedir.

Adım Adım

Örnek kod

  1. Yeni bir Visual Basic .NET Windows uygulaması projesi başlatın.

    Varsayılan olarak, Form1 oluşturulur.
  2. Form1 ' için altı RadioButton denetimleri ve düğme denetimi ekleyin.
  3. RadioButton denetimleri tümünü seçin ve 200,24 için size özelliğini ayarlayın.
  4. Görünüm menüsünde kodu ' ı tıklatın.
  5. Kodu modüle çok başlangıcına kadar aşağıdaki satırı ekleyin:
    Imports System.Data.OleDb
  6. Form sınıfının aşağıdaki kodu ekleyin:
    Private m_sConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   "Data Source=C:\ExcelData1.xls;" & _
                   "Extended Properties=""Excel 8.0;HDR=YES"""
    
    Private m_sConn2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   "Data Source=C:\ExcelData2.xls;" & _
                   "Extended Properties=""Excel 8.0;HDR=YES"""
    
    Private m_sNorthwind = _
          "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"
    
    Private m_sAction As String
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
          RadioButton1.Text = "Create_Workbook"
          RadioButton2.Text = "Retrieve_Records"
          RadioButton3.Text = "Add_Records"
          RadioButton4.Text = "Update_Records"
          RadioButton5.Text = "Update_Individual_Cells"
          RadioButton6.Text = "Use_External_Source"
          Button1.Text = "Go!"
    End Sub
    
    Private Sub RadioButtons_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
          Handles RadioButton1.Click, RadioButton2.Click, RadioButton3.Click, _
          RadioButton4.Click, RadioButton5.Click, RadioButton6.Click
          m_sAction = sender.Text'Store the text for the selected radio button
    End Sub
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
          Try
             ' Call the associated routine to add/update/modify the workbook.
             Select Case m_sAction
                Case "Create_Workbook" : Create_Workbook()
                Case "Retrieve_Records" : Retrieve_Records()
                Case "Add_Records" : Add_Records()
                Case "Update_Records" : Update_Records()
                Case "Update_Individual_Cells" : Update_Individual_Cells()
                Case "Use_External_Source" : Use_External_Source()
             End Select
    
          Catch ex As OleDbException
             Dim er As OleDbError
             For Each er In ex.Errors
                MsgBox(er.Message)
             Next
          Catch ex2 As System.InvalidOperationException
             MsgBox(ex2.Message)
          End Try
    
    
    End Sub
    
    Public Sub Create_Workbook()
    
          ' If the workbooks already exist, prompt to delete.
          Dim answer As MsgBoxResult
          If Dir("C:\ExcelData1.xls") <> "" Or Dir("C:\ExcelData2.xls") <> "" Then
              answer = MsgBox("Delete existing workbooks (C:\ExcelData1.xls and " & _
                       "C:\ExcelData2.xls)?", MsgBoxStyle.YesNo)
              If answer = MsgBoxResult.Yes Then
                  If Dir("C:\ExcelData1.xls") <> "" Then Kill("C:\ExcelData1.xls")
                  If Dir("C:\ExcelData2.xls") <> "" Then Kill("C:\ExcelData2.xls")
              Else
                  Exit Sub
              End If
          End If
    
    '==========================================================================
          ' Create a workbook with a table named EmployeeData. The table has 3 
          ' fields: ID (char 255), Name (char 255) and Birthdate (date).  
    '==========================================================================
          Dim conn As New OleDbConnection()
          conn.ConnectionString = m_sConn1
          conn.Open()
          Dim cmd1 As New OleDbCommand()
          cmd1.Connection = conn
          cmd1.CommandText = "CREATE TABLE EmployeeData (Id char(255), Name char(255), BirthDate date)"
          cmd1.ExecuteNonQuery()
          cmd1.CommandText = "INSERT INTO EmployeeData (Id, Name, BirthDate) values ('AAA', 'Andrew', '12/4/1955')"
          cmd1.ExecuteNonQuery()
          conn.Close()
    
    '==========================================================================
          ' Create a workbook with a table named InventoryData. The table has 3 
          ' fields: Product (char 255), Qty (float) and Price (currency). 
    '==========================================================================
    
          conn.ConnectionString = m_sConn2
          conn.Open()
          Dim cmd2 As New OleDbCommand()
          cmd2.Connection = conn
          cmd2.CommandText = "CREATE TABLE InventoryData (Product char(255), Qty float, Price currency)"
          cmd2.ExecuteNonQuery()
          cmd2.CommandText = "INSERT INTO InventoryData (Product, Qty, Price) values ('Cola', 200, 1.35)"
          cmd2.ExecuteNonQuery()
          cmd2.CommandText = "INSERT INTO InventoryData (Product, Qty, Price) values ('Chips', 550, 0.89)"
          cmd2.ExecuteNonQuery()
          conn.Close()
    
          ' NOTE: You can ALTER and DROP tables in a similar fashion.
    
    End Sub
    
    Public Sub Retrieve_Records()
    
          '==========================================================
          'Use a DataReader to read data from the EmployeeData table.
          '==========================================================
    
          Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
          conn1.Open()
          Dim cmd1 As New System.Data.OleDb.OleDbCommand("Select * From [EmployeeData$]", conn1)
          Dim rdr As OleDbDataReader = cmd1.ExecuteReader
    
          Debug.WriteLine(vbCrLf & "EmployeeData:" & vbCrLf & "=============")
          Do While rdr.Read()
             Debug.WriteLine(System.String.Format("{0,-10}{1, -15}{2}", _
                rdr.GetString(0), rdr.GetString(1), _
                rdr.GetDateTime(2).ToString("d")))
          Loop
          rdr.Close()
          conn1.Close()
    
          '========================================================
          'Use a DataSet to read data from the InventoryData table.
          '========================================================
          Dim conn2 As New OleDbConnection(m_sConn2)
          Dim da As New OleDbDataAdapter("Select * From [InventoryData$]", conn2)
          Dim ds As DataSet = New DataSet()
          da.Fill(ds)
          Debug.WriteLine(vbCrLf & "InventoryData:" & vbCrLf & "==============")
          Dim dr As DataRow
          For Each dr In ds.Tables(0).Rows'Show results in output window
             Debug.WriteLine(System.String.Format("{0,-15}{1, -6}{2}", _
                dr("Product"), dr("Qty"), dr("Price")))
          Next
          conn2.Close()
    
    End Sub
    
    Public Sub Add_Records()
    
    '==========================================================================
          ' Run an INSERT INTO command to add new records to the workbook. 
    '==========================================================================
          Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
          conn1.Open()
          Dim cmd As New System.Data.OleDb.OleDbCommand()
          cmd.Connection = conn1
          cmd.CommandText = "INSERT INTO [EmployeeData$] (ID, Name, BirthDate) values ('CCC', 'Charlie', '10/14/48')"
          cmd.ExecuteNonQuery()
          cmd.CommandText = "INSERT INTO [EmployeeData$] (ID, Name, BirthDate) values ('DDD', 'Deloris', '7/19/98')"
          cmd.ExecuteNonQuery()
          conn1.Close()
    
          '====================================================================
          'Use the InsertCommand object to add new records to the InventoryData
          'table.
          '====================================================================
          Dim conn2 As New OleDbConnection(m_sConn2)
          Dim da As New OleDbDataAdapter("Select * From [InventoryData$]", conn2)
          Dim ds As DataSet = New DataSet()
          da.Fill(ds, "MyExcelTable")
    
          ' Generate the InsertCommand and add the parameters for the command.
          da.InsertCommand = New OleDbCommand( _
             "INSERT INTO [InventoryData$] (Product, Qty, Price) VALUES (?, ?, ?)", conn2)
          da.InsertCommand.Parameters.Add("@Product", OleDbType.VarChar, 255, "Product")
          da.InsertCommand.Parameters.Add("@Qty", OleDbType.Double).SourceColumn = "Qty"
          da.InsertCommand.Parameters.Add("@Price", OleDbType.Currency).SourceColumn = "Price"
    
          ' Add two new records to the dataset.
          Dim dr As DataRow
          dr = ds.Tables(0).NewRow
          dr("Product") = "Bread" : dr("Qty") = 390 : dr("Price") = 1.89 : ds.Tables(0).Rows.Add(dr)
          dr = ds.Tables(0).NewRow
          dr("Product") = "Milk" : dr("Qty") = 99 : dr("Price") = 2.59 : ds.Tables(0).Rows.Add(dr)
    
          ' Apply the dataset changes to the actual data source (the workbook).
          da.Update(ds, "MyExcelTable")
          conn2.Close()
    
    End Sub
    
    Public Sub Update_Records()
    
    '==========================================================================
          ' Run an UPDATE command to change a record in the EmployeeData
          ' table.
    '==========================================================================
          Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
          conn1.Open()
          Dim cmd As New System.Data.OleDb.OleDbCommand()
          cmd.Connection = conn1
          cmd.CommandText = "UPDATE [EmployeeData$] " & _
                        "SET NAME = 'Aaron', BirthDate = '5/4/1975' WHERE ID = 'AAA'"
          cmd.ExecuteNonQuery()
          conn1.Close()
    
          '====================================================================
          ' Use the UpdateCommand object to modify records in the InventoryData
          ' table.
          '====================================================================
          Dim conn2 As New OleDbConnection(m_sConn2)
          Dim da As New OleDbDataAdapter("Select * From [InventoryData$]", conn2)
          Dim ds As DataSet = New DataSet()
          da.Fill(ds, "MyInventoryTable")
    
          ' Generate the UpdateCommand and add the parameters for the command.
          da.UpdateCommand = New OleDbCommand( _
             "UPDATE [InventoryData$] SET Qty = ?, Price=? WHERE Product = ?", conn2)
          da.UpdateCommand.Parameters.Add("@Qty", OleDbType.Numeric).SourceColumn = "Qty"
          da.UpdateCommand.Parameters.Add("@Price", OleDbType.Currency).SourceColumn = "Price"
          da.UpdateCommand.Parameters.Add("@Product", OleDbType.VarChar, 255, "Product")
    
          ' Update the first two records.
          ds.Tables(0).Rows(0)("Qty") = 1000
          ds.Tables(0).Rows(0)("Price") = 10.1
          ds.Tables(0).Rows(1)("Qty") = 2000
          ds.Tables(0).Rows(1)("Price") = 20.2
    
          ' Apply the dataset changes to the actual data source (the workbook).
          da.Update(ds, "MyInventoryTable")
          conn2.Close()
    
    End Sub
    
    Public Sub Update_Individual_Cells()
    
    '==========================================================================
          ' Update individual cells on the EmployeeData worksheet; 
          ' specifically, cells F3, G3, and I4 are modified.
    '==========================================================================
    
          ' NOTE: The connection string indicates that the table does *NOT* 
          ' have a header row.
          Dim conn As New System.Data.OleDb.OleDbConnection(m_sConn1.Replace("HDR=YES", "HDR=NO"))
          conn.Open()
          Dim cmd As New System.Data.OleDb.OleDbCommand()
          cmd.Connection = conn
          cmd.CommandText = "UPDATE [EmployeeData$F3:G3] SET F1 = 'Cell F3', F2 = 'Cell G3'"
          cmd.ExecuteNonQuery()
          cmd.CommandText = "UPDATE [EmployeeData$I4:I4] SET F1 = 'Cell I4'"
          cmd.ExecuteNonQuery()
          conn.Close()
    
    End Sub
    
    Public Sub Use_External_Source()
    
          ' Open a connection to the sample Northwind Access database.
          Dim conn As New System.Data.OleDb.OleDbConnection( _
                "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & m_sNorthwind & ";")
          conn.Open()
          Dim cmd As New System.Data.OleDb.OleDbCommand()
          cmd.Connection = conn
    
    '=======================================================================
          ' Run an INSERT..INTO command on the Northwind database to append 
          ' the records from a table/query to an existing table in the Excel 
          ' workbook.
    '=======================================================================
          cmd.CommandText = "INSERT INTO [EmployeeData$] IN 'C:\ExcelData1.xls' 'Excel 8.0;'" & _
             "SELECT EmployeeID AS ID, FirstName AS Name, BirthDate FROM Employees"
          cmd.ExecuteNonQuery()
    
    '==========================================================================
          ' Run a SELECT..INTO command on the Northwind database to insert 
          ' all the records from a table/query into a new sheet in the Excel 
          ' workbook.
    '==========================================================================
          cmd.CommandText = "SELECT * INTO [Excel 8.0;Database=C:\ExcelData2.xls].[ProductSales]" & _
                          "FROM [Product Sales for 1997]"
          cmd.ExecuteNonQuery()
    
          conn.Close()
    
    End Sub
  7. Gerekiyorsa, kodda m_sNorthwind üyesi için Northwind örnek Access veritabanının yolu değiştirin.

Deneyin

  1. Görünüm menüsünde Diğer Windows işaret ve Çıktı penceresini görüntülemek için Çıkış ' ı tıklatın.
  2. Oluşturmak ve bu programı çalıştırmak için F5 tuşuna basın.
  3. Create_Workbook ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın. Iki yeni çalışma kitapları oluşturmak için CREATE TABLE komutları Create_Workbook yordamını çalıştırır: C:\ExcelData1.xls ve C:\ExcelData2.xls. Bir sayfa ExcelData1.xls içeren EmployeeData (tablo) adlı ve ExcelData2.xls InventoryData adlı bir sayfa (tablo) içerir. Tabloları, kayıtları ile doldurulur.

    Not: Bu sınama kalan her adımı, sonuçları incelemek için Excel'deki çalışma kitaplarını açın. Veya, Retrieve_RecordsÇıktı pencere, Visual Studio .NET tablo içeriğini görüntülemek için tıklatın.
  4. Retrieve_Records ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın. Retrieve_Records yordamı kayıtları tablodan gelen ayıklar ve buna benzer Çıkış penceresinde görüntüleyen:
    EmployeeData:
    =============
    AAA       Andrew         12/4/1955
    
    InventoryData:
    ==============
    Cola           200   1.35
    Chips          550   0.89
  5. Add_Records ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın. Add_Records yordamı her tablo için iki kaydı ekler:
    EmployeeData:
    =============
    AAA       Andrew         12/4/1955
    CCC       Charlie        10/14/1948
    DDD       Deloris        7/19/1998
    
    InventoryData:
    ==============
    Cola           200   1.35
    Chips          550   0.89
    Bread          390   1.89
    Milk           99    2.59
  6. Update_Records ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın. Çalışma kitabındaki her iki kayıt Update_Records yordamına güncelleştirir:
    EmployeeData:
    =============
    AAA       Aaron          5/4/1975
    CCC       Charlie        10/14/1948
    DDD       Deloris        7/19/1998
    
    InventoryData:
    ==============
    Cola           1000  10.1
    Chips          2000  20.2
    Bread          390   1.89
    Milk           99    2.59
  7. Update_Individual_Cells ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın. Belirli hücreleri EmployeeData çalışma sayfasında bulunan ExcelData1.xls Update_Individual_Cells yordamına değiştirir; bu özellikle hücreleri F3 G3, ı4 güncelleştirilir.
  8. Use_External_Source ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın. INSERT kullandığınızdaKomutu Use_External_Source yordamına ExcelData1.xls EmployeeData çalışma 'Çalışanlar' Northwind tablodan kayıt ekler. Ve bir SELECT Use_External_Source kullanırYeni bir tablo (veya sayfa) içinde ExcelData2.xls oluşturmak için komut INTO Northwind tablodaki kayıtların tümünü 'Ürün' içerir.

    Not: Use_External_Source, birden çok kez tıklatırsanız, çünkü birincil anahtar tanınan ya da zorlanan çalışanlar listesi birden çok kez eklenir.

hücre biçimlendirme

ADO.NET eklemek veya varolan bir çalışma kitabındaki kayıtları güncelleştirmek için kullanıyorsanız, hücre çalışma kitabındaki yeni veya güncelleştirilmiş kayıtlarıyla kullanılan biçimlendirme uygulayabilirsiniz. Bir çalışma kitabında varolan kaydı (veya satır) güncelleştirdiğinizde, hücre biçimlendirmeleri korunur. Ve satırın üstündeki biçimlendirme, bir çalışma kitabındaki yeni bir kayıt (veya satır) eklediğinizde, yeni kayıt devralır.

Aşağıdaki yordamda örnek kodu içeren bir çalışma kitabındaki biçimlendirmeyi nasıl kullanabileceğiniz gösterilmektedir:
  1. Oluşturmak ve örnek çalıştırmak için F5 tuşuna basın.
  2. Form1, Create_Workbook ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın.
  3. Microsoft Excel'i başlatın ve C:\ExcelData1.xls açın.
  4. Kalın yazı tipi stili, A2 hücresi için geçerlidir.
  5. Bir italik biçimlendirme uygular, B2 hücresi stiline altı çizili ve Merkeze Hizala.
  6. Bir uzun tarih biçimi, C2 hücresinin uygulayın.
  7. Kaydedip C:\ExcelData1.xls kapatın.
  8. Form1, Add_Records ' ı tıklatın ve sonra da <a2>Git</a2>'i tıklatın.
  9. C:\ExcelData1.xls Excel'de açın ve iki yeni satırları ilk satırdan biçimlendirme devralınmış dikkat edin.

Sınırlamaları

Jet OLE DB sağlayıcısı ile ilgili olarak Excel veri kaynakları ile ilgili bazı sınırlamalar şunlardır:
  • ADO.NET kullanarak hücreleri, formül ekleyemiyor.
  • Jet OLE DB sağlayıcısı bir Excel çalışma kitabındaki tablolar için anahtar/dizin bilgileri değiştiremiyor. Bu nedenle, bir Excel çalışma kitabında güncelleştirmeler ve eklemeler kayıtları otomatik olarak oluşturmak için CommandBuilder kullanamazsınız.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
316756  (http://support.microsoft.com/kb/316756/ ) SORUN: Excel çalışma kitabı için değişiklik yapmak için ADO.NET OLEDbDataAdapter kullandığınızda hatası oluşuyor
257819  (http://support.microsoft.com/kb/257819/EN-US/ ) Excel verileriyle Visual Basic'de veya VBA'DA gelen ADO nasıl kullanılır
306022  (http://support.microsoft.com/kb/306022/ ) Visual Basic .NET kullanarak, bir Excel çalışma kitabı için veri aktarım nasıl kullanılır
306023  (http://support.microsoft.com/kb/306023/ ) Excel'e bir veri aktarım nasıl Visual C#. NET'i kullanarak çalışma kitabı
311731  (http://support.microsoft.com/kb/311731/ ) Query ve ASP.NET, ADO.NET ve Visual Basic .NET kullanarak görüntü Excel'in verileri nasıl
306572  (http://support.microsoft.com/kb/306572/ ) Query ve ASP.NET, ADO.NET ve Visual C# .NET kullanarak görüntü Excel'in verileri nasıl
278973  (http://support.microsoft.com/kb/278973/ ) Örnek: ExcelADO nasıl okuma ve verileri Excel çalışma kitapları yazma için ADO kullanılacağını gösterir.


Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster KB316934 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:316934  (http://support.microsoft.com/kb/316934/en-us/ )