Azavea.NijPredictivePolicing.Parsers.AccessDBValueWriter.WriteLine C# (CSharp) Method

WriteLine() public method

Make sure you have a value for every column! This is really intentionally not thread safe, do not share this class across threads.
public WriteLine ( IEnumerable values ) : bool
values IEnumerable
return bool
        public bool WriteLine(IEnumerable<string> values)
        {
            if (!IsOpen())
                return false;

            if (_insertCmd == null)
            {
                DbCommand cmd = _conn.CreateCommand();
                cmd.CommandText = "SELECT * FROM " + _tablename;

                DbDataAdapter dda = new System.Data.OleDb.OleDbDataAdapter((OleDbCommand)cmd);
                System.Data.OleDb.OleDbCommandBuilder odcb = new System.Data.OleDb.OleDbCommandBuilder((OleDbDataAdapter)dda);

                _insertCmd = odcb.GetInsertCommand();
            }

            //double temp = Double.NaN;

            int i = 0;
            foreach (string val in values)
            {
                //if (Double.TryParse(val, out temp))
                //{
                //    //try to parse out integers, float vars (lat/lon), ids, anything numeric
                //    _insertCmd.Parameters[i].Value = temp;
                //}
                //else if (_insertCmd.Parameters[i].SourceColumn.ToLower().EndsWith("id"))
                //{
                //    //if the value is empty, and it HAS to be a number...
                //    _insertCmd.Parameters[i].Value = 0;
                //}
                //else
                //{
                    _insertCmd.Parameters[i].Value = val;
                //}

                i++;
            }

            int rows = _insertCmd.ExecuteNonQuery();
            return (rows == 1);
        }