【发布时间】:2013-12-06 00:32:25
【问题描述】:
我有以下代码来创建一个包含三个记录的列表,并用这个列表填充一个访问数据库。它可以工作,但数据库会用列表的第一条记录填充三次,即重复行。任何帮助将不胜感激。谢谢
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.OleDb;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
var list = new List<Project>(){
new Project{ProjectId="ID1",ProjectName="AAAA"},
new Project{ProjectId="ID2",ProjectName="BBBB"},
new Project{ProjectId="ID3",ProjectName="CCCC"},
};
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\td\Desktop\Test2.accdb";
OleDbConnection con = new OleDbConnection(connectionString);
string accessQuery = "INSERT INTO [table] (ProjectId, ProjectName) VALUES (@ProjectId, @ProjectName)";
OleDbCommand cmd = new OleDbCommand(accessQuery, con);
con.Open();
for (int i = 0; i < list.Count; i++)
{
cmd.Parameters.AddWithValue("@ProjectId", list[i].ProjectId);
cmd.Parameters.AddWithValue("@ProjectName", list[i].ProjectName);
cmd.ExecuteNonQuery();
}
}
}
public class Project
{
public string ProjectId { get; set; }
public string ProjectName { get; set; }
}
}
【问题讨论】:
-
因为你得到了第 3 条记录,而你根本没有得到第 2 条和第 3 条记录?
-
ID1,AAAA ID1,AAAA ID1,AAAA