簡體   English   中英

使用 C# 使用 DAO 將批量數據插入 Access 數據庫

[英]Inserting Bulk data into Access Database using DAO using C#

我正在嘗試將近 100000 行數據插入訪問。 我使用 ADO.net 插入數據,但是插入需要花費太多時間,所以我決定使用 DAO。 我按照示例使用 DAO 插入數據。 下面是我的代碼:

 public void testDAO()
        {
            try
            {
                List<DB.Rec> recList = new List<DB.Rec>();
                recList = getData();
                DBEngine dbEngine = new DBEngine();

                Database db = dbEngine.OpenDatabase(@"C:\Recs2001.mdb");


                Recordset rs= db.OpenRecordset("RecsCD");
                Field[] recFields = new Field[7];

               
               for(int i=0; i<=recList.Count;i++)
                {
                    rs.AddNew();
                    for (int k = 0; k <= 6; k++)
                    {
                        recFields[k].Value = recList[k].Test1;
                        recFields[k].Value = recList[k].Test2;
                        recFields[k].Value = recList[k].Test3;
                        recFields[k].Value = recList[k].Test4;
                        recFields[k].Value = recList[k].Test5;
                        recFields[k].Value = recList[k].Test6;
                        recFields[k].Value = recList[k].Test7;

                    }
                    rs.Update();
                }
                
                rs.Close();
                db.Close();
            }
            catch (Exception ex)
            {

            }
         }

當調試器轉到這一行時:

recFields[k].Value = recList[k].Test1;

我收到一條錯誤消息:

System.NullReferenceException: 'Object reference not set to an instance of an object.'

在即時窗口中,我可以看到 recList[k].Test1 的值,所以我不確定為什么它會抱怨“對象引用未設置為對象的實例。”。

我一定錯過了一些聲明,但我看不出我做錯了什么。

任何幫助將不勝感激。

我預計錯誤是由於沒有引用記錄集對象。

不確定是否需要 recFields 數組。 如果記錄集按您要輸入數據的順序提取字段,只需按索引引用字段。
rs(k) = recList[k].Test1; rs.Fields(k) = recList[k].Test1;

或者如果 recFields 數組實際上有字段名稱,並且您想顯式引用字段:
rs(recFields[k]) = recList[k].Test1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM