achraf boumessouer Ответов: 3

Как преобразовать двойное значение в целое число! ! !


using (DbDataReader dr = command.ExecuteReader())
              {
                  // SQL Server Connection String
                  string sqlConnectionString = "Data Source=ACHRAF\\SQLEXPRESS;Initial Catalog=PFEBD;Integrated Security=True";

                  // Bulk Copy to SQL Server
                  using (SqlBulkCopy bulkCopy =
                             new SqlBulkCopy(sqlConnectionString))
                  {
                      bulkCopy.DestinationTableName = "CDR";
                      bulkCopy.ColumnMappings.Add("RecordFileName", "RecordFileName");
                      bulkCopy.ColumnMappings.Add("Type-of-Recording", "TypeOfRecording");
                      bulkCopy.ColumnMappings.Add("ANumber", "ANumber");
                      bulkCopy.ColumnMappings.Add("BNumber", "BNumber");
                      bulkCopy.ColumnMappings.Add("BNumber-Type", "BNumberType");
                      bulkCopy.ColumnMappings.Add("Who-Pay", "WhoPay");
                      bulkCopy.ColumnMappings.Add("Call-Start-Date", "CallStartDate");
                      bulkCopy.ColumnMappings.Add("Call-Start-Time", "CallStartTime");
                      bulkCopy.ColumnMappings.Add("Call-Duration", "CallDuration");
                      bulkCopy.ColumnMappings.Add("Sample-Type", "SampleType");
                      bulkCopy.ColumnMappings.Add("Outgoing-Route", "OutgoingTrunk");
                      bulkCopy.ColumnMappings.Add("Incoming-Route", "IncommingTrunk");
                      bulkCopy.ColumnMappings.Add("Counter-Number", "CounterNumber");
                      bulkCopy.ColumnMappings.Add("Number-of-Pulse", "NumberofPulse");
                      bulkCopy.ColumnMappings.Add("Cause", "Cause");
                      bulkCopy.ColumnMappings.Add("Location", "Location");
                      bulkCopy.ColumnMappings.Add("Called-Party-Portability-Info", "CalledPartyPortabilityInfo");
                      bulkCopy.ColumnMappings.Add("Call-Reference", "CallReference");
                      bulkCopy.ColumnMappings.Add("Sequence-Number", "SequenceNumber");
                      bulkCopy.ColumnMappings.Add("Network-Call-Reference", "NetworkCallReference");


                      bulkCopy.WriteToServer(dr);//

                  }
              }


Что я уже пробовал:

Unable to convert the provided Double type value for the data source to the int type of the specified target column.

3 Ответов

Рейтинг:
2

Member 12810461

Вы можете использовать typecast, если хотите, чтобы поведение по умолчанию было усечено до нуля, но это может не сработать для каждого бизнес-случая. Кроме того, вы, возможно, захотите использовать
Математика.Потолок, Математика.Раунд, Математика.Пол и т. д. - Хотя вам все равно понадобится гипс после этого.
Преобразовать.ToInt32(Матем.Раунд(dblValue))

вам нужно будет позаботиться о переполнении, так как int меньше по диапазону, чем double.


Рейтинг:
2

loyal ginger

В вашем запросе для вашего читателя преобразуйте столбец в int, тогда тип будет соответствовать. Сделай что-нибудь вроде этого:

CAST(<some value> AS INT)


Рейтинг:
1

Kuldeep Kumar

Только Каскадируйте свое значение, например, как код C...

double avg;
print("%lf",avg);
sum  = (int)avg+a;
print("%d",sum);