c# - Trouble with data reader -


afternoon, writing database management program make things easier @ work. i'm having trouble datareader if table returns no results. have searched on web solution no avail. eating humble pie , asking.

firstly understand db layout, have multiple tables , want display results in 1 list view. code works fine displaying whole table when trying search no result found in first table throws exception every table within loop. if result found in first table continue loop again until search string not found in each table.

here code

private string _strdbpath; private string _strcontractnumber; public string[] dbtables = new string[9] {"0", "1800", "2800", "4000", "5000", "5400", "5700", "6800", "7800"}; public string[] dbfields = new string[3] { "contractnumber", "name", "ref",}; private enum sqltype {normal, search} private bool dbsearch =false;    private void frmrecords_load(object sender, eventargs e) {         lstcontractsaddcolums();         timerstart.start();     }      private void lstcontractsaddcolums()     {         lstcontracts.columns.clear();          (int = 0; < dbfields.length; i++) //check see if last field in array             lstcontracts.columns.add(dbfields[i], 200, horizontalalignment.left);     }      private void timerstart_tick(object sender, eventargs e)     {         (int = 0; < dbtables.length; i++)         {             while (!dbsearch == false)             {              }             dbgetdata(i, sqltype.search, "1000", "contractnumber");             dbsearch = false;         }          timerstart.stop();     }      private void dbgetdata(int dbtable, sqltype sqlrecords, string strsearch, string strfield)     {           string mysql = "select ";          (int = 0; < dbfields.length; i++) //check see if last field in array             if (i < dbfields.length - 1)             {                 mysql = mysql + dbfields[i] + ", "; //this not last field             }             else             {                 mysql = mysql + dbfields[i] + " "; //this last field (no commor required)             }          switch (sqlrecords)         {             case sqltype.normal:                 mysql = mysql + " " + dbtables[dbtable] + " order contractnumber"; //adds last part of sayntex                        break;              case sqltype.search:                 mysql = mysql + " " + dbtables[dbtable] + " " + strfield + " = " + strsearch; //adds last part of sayntex                 break;             default:                 mysql = mysql + " " + dbtables[dbtable] + " order contractnumber"; //adds last part of sayntex                  break;         }          connstr = @"provider=microsoft.ace.oledb.12.0;data source=" + strdbpath + ";jet oledb:database password="; //selects database along provider of database          try          {              using(oledbconnection myconn = new oledbconnection(connstr) )             {                 myconn.open(); //opens myconn                  oledbcommand cmd = new oledbcommand(mysql, myconn);                 oledbdatareader objreader = cmd.executereader();                  if (!objreader.hasrows)                 {                     messagebox.show("no rows found");                  }                 else                 {                     while (objreader.read())                     {                         listviewitem item = new listviewitem(objreader[dbfields[0].tostring()].tostring());                         (int = 1; < dbfields.length; i++) //check see if last field in array                             item.subitems.add(objreader[dbfields[i]].tostring());                         lstcontracts.items.add(item);                     }                   }                 dbsearch = true;                 objreader.close();                 cmd.dispose();                 myconn.close();             }          }         catch (exception ex)         {             oerrorlog.writeerrorlog(ex.tostring());             dbsearch = true;         }                 {             dbsearch = true;         }     } 

it's silly advise help.


Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -