Have a proble with loop through csv file. Example i have two csv file in folder. csvfile1 has 10 row, and csvfile2 has 20 row. It will insert into database. And if a 2 new row added in csvfile1, Only insert into database those 2 new row.
- foreach(string path in Directory.EnumerateFiles(@"C:\ihelp\record", "*.csv")) {
- string[] lines = File.ReadAllLines(path);
- List < string > list = new List < string > (lines);
- list.RemoveAt(0);
- list.RemoveAt(0);
- list.RemoveAt(0);
- int row = list.Count;
- Console.WriteLine("CSV got : " + row + " line");
- var upd1 = "update list set lastrow =@lastrow where filename =@filename";
- var cmd5 = new NpgsqlCommand(upd1, conn);
- cmd5.Parameters.AddWithValue("@filename", Convert.ToString(path));
- cmd5.Parameters.AddWithValue("@lastrow", Convert.ToDouble(row));
- cmd5.ExecuteNonQuery();
- if (row >= RecordCount) {
- for (int f = RecordCount; f < row; f++) {
- var line = list[f];
- Console.WriteLine("Record count :" + RecordCount);
- Console.WriteLine("line :" + line);
- var columns = line.Split(',');
- var sql = "insert into result(datetime,name)values(@datetime,@name)";
- var cmd6 = new NpgsqlCommand(sql, conn);
- for (int i = 0; i < columns.Length; i++) {
- if (i == 0) {
- cmd6.Parameters.AddWithValue("datetime", Convert.ToDateTime(columns[i]));
- string Time = cmd6.Parameters["@datetime"].Value.ToString();
- Console.WriteLine("Record inserted successfully. datetime = " + columns[i]);
- }
- if (i == 1) {
- cmd6.Parameters.AddWithValue("name", Convert.ToString(columns[i]));
- string name = cmd6.Parameters["@name"].Value.ToString();
- Console.WriteLine("Record inserted successfully. name = " + columns[i]);
- }
- }
- }
- cmd6.ExecuteNonQuery();