我正在致力于在将csv插入数据库之前对其进行验证。我已经完成了将它们插入到数据库中的一段,但不知道如何验证重复记录并仅将重复记录插入到数据库中。Csv如下所示,我们可以接收ProdID作为CSV中的重复项只将csv中的重复记录插入到数据库中
ProdID,Name,Color,Availability
P01,Product1,Red,Yes
P02,Product2,Blue,Yes
P03,Product3,Yellow,No
P01,Product4,Red,Yes
P04,Product5,Black,Yes
表中有五场与场中的一个是
class Products
{
static void Main(string[] args)
{
string location = "\Products.csv";
List<Products> ProductsList= ReadInCSV(location);
var connStr = ConfigurationManager.ConnectionStrings["ProgConnectionString"].ConnectionString;
// Need to validate them before putting them in to the table
string sqlString = "INSERT INTO PRODUCTS (ProdID,Name,Color,Availability,Duplicate) VALUES (@ProdID,@Name,@Color,@Availability,@Duplicate);";
for (int i = 0; i < ProductsList.Count; i++)
{
using (MySqlConnection conn = new MySqlConnection(connStr))
using (MySqlCommand comm = new MySqlCommand(sqlString, conn))
{
comm.Parameters.Add("@ProdID", MySqlDbType.VarChar).Value = ProductsList[i].ProdID;
comm.Parameters.Add("@Name", MySqlDbType.VarChar).Value = ProductsList[i].Name;
comm.Parameters.Add("@Color", MySqlDbType.VarChar).Value = ProductsList[i].Color;
comm.Parameters.Add("@Availability", MySqlDbType.VarChar).Value = ProductsList[i].Availability;
comm.Parameters.Add("@Duplicate", MySqlDbType.VarChar).Value = "Yes";
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
}
}
}
我不知道我怎么能检查在CSV重复的记录,做一个只插入到记录的重复字段这是重复的。
我不清楚你问什么?你想只插入不同的记录(即排除重复)吗?或者你只想插入重复的记录(如果是这样,你想要所有副本的副本或只是一个代表重复的实例)? – maccettura
哪些是“csv中的重复记录”?它们对我来说都很明显。 –
@maccettura我只需要插入重复记录。这里P01正在重复,我只需要将这两条记录插入到表中 – xyz