我试图在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?