![](/img/trans.png)
[英]Inserting Data in an Access Database from Visual Studio using C#
[英]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.