行ごとに動作し、データベースに挿入するフラットファイルを解析していますが、追加のステップ、実際には2つのステップを追加したいと考えています。
最初に、特定の自動車メーカーのリコールのレコードのみが必要です。これには、含めたいすべてのメーカーのリストを含む AutoMake というデータベース テーブルがあります。レコードをそのテーブルと比較して、含めたいメーカーのレコードであることを確認する必要があります。
次に、レコードがまだデータベースにないことを確認するために、2 回目のチェックを行う必要があります。これはコンソール アプリであり、これにはエンティティを使用しています。これが私のコードです。チェックを含めるためにこれを書き直し、書き直そうとしていますが、それを取得していません。
ああ、それは本当に重要ではありません。誰かが私を正しい方向に導くことができれば、そこから移動できますtokens[2]
が、一意の値MAKETXT
でRCL_CMPT_ID
あるため、レコードがデータベースに既に存在するかどうかを確認するために使用できtokens[23]
ますRCL_CMPT_ID
public static void ParseTSV(string location)
{
Console.WriteLine("Parsing.....");
using (var reader = new StreamReader(location))
{
var lines = reader.ReadToEnd().Split(new char[] { '\n' });
if (lines.Length > 0)
{
foreach (string line in lines)
{
if (string.IsNullOrWhiteSpace(line))
{
continue;
}
var tokens = line.Trim().Split(new char[] { '\t' });
var recalls = new Recalls();
recalls.RECORD_ID = tokens[0];
recalls.CAMPNO = tokens[1];
recalls.MAKETXT = tokens[2];
recalls.MODELTXT = tokens[3];
recalls.YEARTXT = tokens[4];
recalls.MFGCAMPNO = tokens[5];
recalls.COMPNAME = tokens[6];
recalls.MFGNAME = tokens[7];
recalls.BGMAN = tokens[8];
recalls.ENDMAN = tokens[9];
recalls.RCLTYPECD = tokens[10];
recalls.POTAFF = tokens[11];
recalls.ODATE = tokens[12];
recalls.INFLUENCED_BY = tokens[13];
recalls.MFGTXT = tokens[14];
recalls.RCDATE = tokens[15];
recalls.DATEA = tokens[16];
recalls.RPNO = tokens[17];
recalls.FMVSS = tokens[18];
recalls.DESC_DEFECT = tokens[19];
recalls.CONEQUENCE_DEFECT = tokens[20];
recalls.CORRECTIVE_ACTION = tokens[21];
recalls.NOTES = tokens[22];
recalls.RCL_CMPT_ID = tokens[23];
string connectionString = GetConnectionString();
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmdIns = new SqlCommand(GetInsertSqlCust(recalls), connection);
connection.Open();
cmdIns.ExecuteNonQuery();
connection.Close();
cmdIns.Dispose();
cmdIns = null;
}
}
}
}
}