파일에서 읽고 데이터베이스를 채울 수있는 다음 코드가 있습니다. 모든 레코드가 두 번 삽입된다는 점을 제외하고는 모두 잘 작동합니다. 데이터베이스에서 중복을 제거하십시오.
OleDbCommand c = new OleDbCommand();
c.Connection = GetConnection();
c.CommandText =
@"CREATE TABLE patients (
patientid AUTOINCREMENT PRIMARY KEY,
firstlastname CHAR(50),
birthdate CHAR(50),
birthplace CHAR(50),
gender CHAR(1),
bloodtype CHAR(50),
telnum CHAR(50),
address CHAR(255)
)";
c.ExecuteNonQuery();
string info = "";
string name = "";
string date = "";
string place = "";
string blood = "";
string num = "";
string address = "";
//Read from file and insert values to patient table
StreamReader myReader = new StreamReader("myPath/patient.txt");
while (true)
{
info = myReader.ReadLine();
if (info == null) break;
if (info.Trim() != String.Empty)
{
string[] words = info.Split(',');
if (words.Length == 6)
{
name = words[0].Trim();
date = words[1].Trim();
place = words[2];
blood = words[3];
num = words[4];
address = words[5];
}
}
string cmdText = "INSERT INTO patients (" +
"firstlastname, birthdate, birthplace, bloodtype, telnum, address) " +
"VALUES (?,?,?,?,?,?)";
using (OleDbConnection cn = GetConnection())
{
using (OleDbCommand cmd = new OleDbCommand(cmdText, cn))
{
cmd.Parameters.AddWithValue("name", name);
cmd.Parameters.AddWithValue("date", date);
cmd.Parameters.AddWithValue("place", place);
cmd.Parameters.AddWithValue("blood", blood);
cmd.Parameters.AddWithValue("num", num);
cmd.Parameters.AddWithValue("address", address);
cmd.ExecuteNonQuery();
}
}
}
나는 눈치 라인
if (info.Trim() != String.Empty)
반환 "false"로 그 기록을 두 번 삽입하지만,이 문제를 해결하는 방법을 잘 모릅니다되도록 다른 모든 시간.
어떻게 이러한 중복을 제거 할 수 있습니까?. 감사
편집 : 파일의 내용은 표시 이름, 날짜, 도시, 혈액형, 모바일 납입과 주소과 같습니다
Mehtap 셀 림, 1985년 11월 6일, 키레 니아, FBRh +, 05617584509, Yasemin 세인트 No : 48 Edremit Kyrenia KKTC
내가 편집 – MethodMan