private RowRecord BindParamters()

in src/Apache.IoTDB.Data/IoTDBCommand.cs [350:418]


        private RowRecord BindParamters(IoTDBParameterCollection pms)
        {
            var measures = new List<string>();
            var values = new List<object> ();
           

            for (int i = 0; i < pms.Count; i++)
            {

                var tp = pms[i];
                measures.Add(tp.ParameterName);
             //   _commandText = _commandText.Replace(tp.ParameterName, "?");
                switch (TypeInfo.GetTypeCode(tp.Value?.GetType()))
                {
                    case TypeCode.Boolean:
                       values.Add ((tp.Value as bool?).GetValueOrDefault());
                        break;
                    case TypeCode.Char:
                        values.Add(tp.Value as string);
                        break;
                    case TypeCode.Byte:
                    case TypeCode.SByte:
                        values.Add((tp.Value as byte?).GetValueOrDefault());
                        break;
                    case TypeCode.DateTime:
                        var t0 = tp.Value as DateTime?;
                        if (!t0.HasValue)
                        {
                            throw new ArgumentException($"InvalidArgumentOfDateTime{tp.Value}");
                        }
                        values.Add(t0.GetValueOrDefault());
                        break;
                    case TypeCode.DBNull:
                   
                        break;
                    case TypeCode.Single:
                        values.Add((tp.Value as float?).GetValueOrDefault());
                        break;
                    case TypeCode.Decimal:
                    case TypeCode.Double:
                        values.Add((tp.Value as double?).GetValueOrDefault());
                        break;
                    case TypeCode.Int16:
                        values.Add((tp.Value as short?).GetValueOrDefault());
                        break;
                    case TypeCode.Int32:
                        values.Add((tp.Value as int?).GetValueOrDefault());
                        break;
                    case TypeCode.Int64:
                        values.Add((tp.Value as long?).GetValueOrDefault());
                        break;
                    case TypeCode.UInt16:
                        values.Add((tp.Value as short?).GetValueOrDefault());
                        break;
                    case TypeCode.UInt32:
                        values.Add((tp.Value as uint?).GetValueOrDefault());
                        break;
                    case TypeCode.UInt64:
                        values.Add((tp.Value as ulong?).GetValueOrDefault());
                        break;
                    case TypeCode.String:
                    default:
                        values.Add(tp.Value as string);
                        break;
                }
            }

            return   new RowRecord(DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),values,measures);
        }