Question 1.
How do I retrieve the number of rows in myDataReader, is there a (int count = myDataReader.RowCount) ??
Question 2 If place a place holder for my count for testing ex. (int count = 2) it always doubles my data, If I put (int count =3) it triples my data. I'm assuming there's something wrong in my code
// Get the serial number
Item qry0 = this.newItem("MIN_Delivered_Component");
qry0.setAttribute("select","item_number");
qry0.setID(this.getProperty("source_id"));
Item res=qry0.apply("get");
if (res.isError()) return res;
// get the Serial Number (key) that we will use in the external database to search on.
string masterserial;
masterserial = res.getProperty("item_number");
// Connect to external database
System.Data.OleDb.OleDbConnection myConnection = new System.Data.OleDb.OleDbConnection(@"Provider=SQLOLEDB;Data Source=000.00.000.0; Initial Catalog=ABC; User ID=admin;Password=xxxxx;");
string sqltext = "select dc, trans_group, part_number where serial_number = '" + masterserial + "';";
System.Data.OleDb.OleDbCommand com = new System.Data.OleDb.OleDbCommand(sqltext);
com.Connection = myConnection;
myConnection.Open();
System.Data.OleDb.OleDbDataReader myDataReader = com.ExecuteReader();
//create a MIN_Delivered_Transaction item
Item res5 = this.newItem("MIN_Delivered_Transaction");
string newid = getNewID();
res5.setID(newid);
res5 = res5.apply();
int count = 2;
while (myDataReader.Read()) {
for(int i = 0 ; i < count ; i++) {
Item temp = this.newItem("MIN_Delivered_Transaction");
temp.setProperty("f_dc", myDataReader.GetString(0));
temp.setProperty("f_trans_group", myDataReader.GetString(1));
temp.setProperty("f_part_number",myDataReader.GetString(2));
res5.appendItem(temp); // Add a new item for each iteration of the loop
}
}
myConnection.Close();
return res5;