EDN Admin
Well-known member
Hi.
I have the following code for reading from a file and populating my database. Everything works fine except that all records are inserted twice.
<pre class="prettyprint 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();
}
}
}[/code]
I noticed that the line
<pre class="prettyprint" style="font-size:12px if (info.Trim() != String.Empty)[/code]
returns "false" every other time so records are inserted twice but dont know how to fix this.
How can i eliminate these duplicates?. <br/>
Thanks
View the full article
I have the following code for reading from a file and populating my database. Everything works fine except that all records are inserted twice.
<pre class="prettyprint 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();
}
}
}[/code]
I noticed that the line
<pre class="prettyprint" style="font-size:12px if (info.Trim() != String.Empty)[/code]
returns "false" every other time so records are inserted twice but dont know how to fix this.
How can i eliminate these duplicates?. <br/>
Thanks
View the full article