我正在致力於在將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