コード例 #1
0
        public bool InsertNewSensor(DBSensor pSensor)
        {
            bool bSuccess = true;

            try {
                using (NpgsqlConnection pDBConnection = new NpgsqlConnection(__sConnectionString)) {
                    pDBConnection.Open();

                    string sInsert = string.Format("INSERT INTO {0} ({1}, {2}, {3}) VALUES (@nMatNum, @sName,@nTestParamID)",
                                                   DBNames.SensorTable.TableName, DBNames.SensorTable.Columns.material_num, DBNames.SensorTable.Columns.name, DBNames.SensorTable.Columns.testparam);

                    // Insert some data
                    using (NpgsqlCommand cmd = new NpgsqlCommand(sInsert, pDBConnection)) {
                        cmd.Parameters.AddWithValue("nMatNum", pSensor.MaterialNumber);
                        cmd.Parameters.AddWithValue("sName", pSensor.Name);
                        cmd.Parameters.AddWithValue("nTestParamID", pSensor.TestParamID ?? (object)DBNull.Value);
                        cmd.ExecuteNonQueryAsync();
                    }
                }
            }
            catch (Exception e) {
                bSuccess = false;
                //todo: Add logging
            }

            return(bSuccess);
        }
コード例 #2
0
        /// <summary>
        /// Used for reading data from generic Get method for collections
        /// </summary>
        /// <param name="pReader">DB Reader returned from the select query</param>
        /// <returns></returns>
        private static DBFullSensor ReadConvertFullSensorFromDB(NpgsqlDataReader pReader)
        {
            //We're not using tryparse here for a reason. We don't want to have any broken records coming through the line to the test setup. Break early instead of breaking expensive
            long   nMatNum      = Int64.Parse(pReader[0].ToString());
            string sSensorName  = pReader[1].ToString();
            long?  nTestParamID = pReader[2] == DBNull.Value ? null : (long?)pReader[2];

            DBSensor pSensor = new DBSensor(nMatNum, sSensorName, nTestParamID);

            DBTestParameter pTestParam = null;

            if (nTestParamID != null)
            {
                string sTestParamName = pReader[3].ToString();
                int    nPreTestMS     = Int32.Parse(pReader[4].ToString());
                int    nTime          = Int32.Parse(pReader[5].ToString());
                double nHighLimitmV   = Double.Parse(pReader[6].ToString());
                double nLowLimitmV    = Double.Parse(pReader[7].ToString());

                pTestParam = new DBTestParameter(nTestParamID.Value, sTestParamName, nPreTestMS, nTime, nHighLimitmV, nLowLimitmV);
            }

            return(new DBFullSensor {
                Sensor = pSensor, TestParam = pTestParam
            });
        }
コード例 #3
0
        public bool UpdateSensor(DBSensor pSensor)
        {
            bool bSuccess = true;

            try {
                string sUpdate = string.Format("UPDATE {0} SET {1}=@sName, {2}=@nTestParamID WHERE {3}=@nMatNum",
                                               DBNames.SensorTable.TableName, DBNames.SensorTable.Columns.name, DBNames.SensorTable.Columns.testparam, DBNames.SensorTable.Columns.material_num);

                using (NpgsqlConnection pDBConnection = new NpgsqlConnection(__sConnectionString)) {
                    pDBConnection.Open();

                    using (NpgsqlCommand cmd = new NpgsqlCommand(sUpdate, pDBConnection)) {
                        cmd.Parameters.AddWithValue("sName", pSensor.Name);
                        cmd.Parameters.AddWithValue("nTestParamID", pSensor.TestParamID ?? (object)DBNull.Value);
                        cmd.Parameters.AddWithValue("nMatNum", pSensor.MaterialNumber);
                        cmd.ExecuteNonQueryAsync();
                        pDBConnection.Close();
                    }
                }
            }
            catch (Exception e) {
                bSuccess = false;
                //todo: Add logging
            }

            return(bSuccess);
        }