title: ORA-00917: missing comma error INSERT
body: <p>Below is the c# code I'm using to try to insert items into an oracle database.  I get the missing comma error, but I'm not missing any.  </p>
  
  <pre><code>string queryString = @"INSERT INTO MAILLIST (GRPID, FNAME, MI, LNAME, ADDR1, ADDR2, CITY, STATE,";
  queryString += @" ZIP, ZIP4, DOB, SSN, STATUS, DATEADDTOLIST, GENDER, AGE, MEDIA, BANK_ACCT, PRODCODE,";
  queryString += @" UNIQUESSN, ACCT_TYPE, ROUTING_NO, EMAIL)";
  queryString += @" Values ('" + item.grpid + @"', '" + item.fname + @"', '" + item.mid_init + @"',";
  queryString += @" '" + item.lname + @"', '" + item.addr1 + @"', '" + item.addr2 + @"',";
  queryString += @" '" + item.city + @"', '" + item.state + @"', '" + item.zip_code + @"',";
  queryString += @" '" + item.zip4 + @"', " + item.birth_date + @", '" + item.ssn + @"',";
  queryString += @" '" + item.status + @"', " + item.date_added + @", '" + item.gender + @"',";
  queryString += @" '" + item.age + @"', '" + item.media + @"', '" + item.bank_acct + @"',";
  queryString += @" '" + item.prodcode + @"', '" + item.unique_ssn + "', '" + item.acct_type + @"',";
  queryString += @" '" + item.routing_num + @"', '" + item.email + @"')";
  </code></pre>
  
  <p>When outputted, the query looks like </p>
  
  <pre><code>INSERT INTO MAILLIST (GRPID, FNAME, MI, LNAME, ADDR1, ADDR2, CITY, STATE, ZIP, ZIP4,
  DOB, SSN, STATUS, DATEADDTOLIST, GENDER, AGE, MEDIA, BANK_ACCT, PRODCODE, UNIQUESSN,
  ACCT_TYPE, ROUTING_NO, EMAIL) Values ('0001190', 'John', '', 'Smith', 'address', '',
  'Oak Ridge', 'TN', '37830', '',
  04/08/1985 12:00:00 AM, '000000000', 'A ',
  07/20/2015 12:00:00 AM,
  'M', 29, 'NICK', '0000000', '12345', '00000000', 'S', '000000000', '')
  </code></pre>
  
  <p>When I tried to insert the data using command.Parameters.Add() I got an error saying 'Not enough values'</p>
  
  <pre><code>string queryString = @"INSERT INTO MAILLIST (GRPID, FNAME, MI, LNAME, ADDR1, ADDR2, CITY, STATE,";
                  queryString += @" ZIP, ZIP4, DOB, SSN, STATUS, DATEADDTOLIST, GENDER, AGE, MEDIA, BANK_ACCT, PRODCODE,";
                  queryString += @" UNIQUESSN, ACCT_TYPE, ROUTING_NO, EMAIL)";
                  queryString += @" VALUES (:GRPID, :FNAME, :MI, :LNAME, :ADDR1, :ADDR2, :CITY, :STATE";
                  queryString += @" :ZIP, :ZIP4, :DOB, :SSN, :STATUS, :DATEADDTOLIST, :GENDER, :AGE, :MEDIA, :BANK_ACCT,";
                  queryString += @" :PRODCODE, :UNIQUESSN, :ACCT_TYPE, :ROUTING_NO, :EMAIL)";
  
                  Console.WriteLine(queryString);
  
                  using (OracleConnection connection = new OracleConnection(connectionString))
                  {
                      OracleCommand command = connection.CreateCommand();
                      command.CommandText = queryString;
  
                      try
                      {
                          connection.Open();
  
                          command.Parameters.Add(new OracleParameter("GRPID", item.grpid));
                          command.Parameters.Add(new OracleParameter("FNAME", item.fname));
                          command.Parameters.Add(new OracleParameter("MI", item.mid_init));
                          command.Parameters.Add(new OracleParameter("LNAME", item.lname));
                          command.Parameters.Add(new OracleParameter("ADDR1", item.addr1));
                          command.Parameters.Add(new OracleParameter("ADDR2", item.addr2));
                          command.Parameters.Add(new OracleParameter("CITY", item.city));
                          command.Parameters.Add(new OracleParameter("STATE", item.state));
                          command.Parameters.Add(new OracleParameter("ZIP", item.zip_code));
                          command.Parameters.Add(new OracleParameter("ZIP4", item.zip4));
                          command.Parameters.Add(new OracleParameter("DOB", item.birth_date));
                          command.Parameters.Add(new OracleParameter("SSN", item.ssn));
                          command.Parameters.Add(new OracleParameter("STATUS", item.status));
                          command.Parameters.Add(new OracleParameter("DATEADDTOLIST", item.date_added));
                          command.Parameters.Add(new OracleParameter("GENDER", item.gender));
                          command.Parameters.Add(new OracleParameter("AGE", item.age));
                          command.Parameters.Add(new OracleParameter("MEDIA", item.media));
                          command.Parameters.Add(new OracleParameter("BANK_ACCT", item.bank_acct));
                          command.Parameters.Add(new OracleParameter("PRODCODE", item.prodcode));
                          command.Parameters.Add(new OracleParameter("UNIQUESSN", item.unique_ssn));
                          command.Parameters.Add(new OracleParameter("ACCT_TYPE", item.acct_type));
                          command.Parameters.Add(new OracleParameter("ROUTING_NO", item.routing_num));
                          command.Parameters.Add(new OracleParameter("EMAIL", item.email));
  
                          OracleDataReader reader = command.ExecuteReader();
  
                          reader.Close();
  </code></pre>