我试图在C#中使用sqlbulkcopy将双数据类型插入到SQL数据集中。 SQL表中的某些列被定义为int类型。

问题描述:

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");
                      try
                      {
                          bulkCopy.WriteToServer(dr);
                      }
                      catch (Exception ex)
                      {
                          Console.WriteLine(ex.Message);
                      }
                      finally
                      {
                          dr.Close();
                      }





我尝试过:





What I have tried:

How can I convert SQLbulkcopy.Columnmappings.Add into int before insert into SQL table?

为什么不将列类型更改为double,然后执行insert,然后将其更改为int?
Why don't you change your column type to double, then do the insert, then change it to int?