none
关于SqlBulkCopy批量复制结果差异问题 RRS feed

  • 问题

  • 现场测量数据,每次需传递数千笔采样点到数据库,采用SqlBulkCopy来发送,但发送后源表与目的表存在数据差异,请问是何原因如何解决,谢谢了

    程序如下:

                    // 數據批量導入sqlserver
                    SqlBulkCopy sqlbulk = new SqlBulkCopy(strCon, SqlBulkCopyOptions.UseInternalTransaction);
                    sqlbulk.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnRowsCopied);
                    sqlbulk.NotifyAfter = srcTable.Rows.Count;
                    
                    sqlbulk.DestinationTableName = "StdTemplate";             // 數據集字段索引與數據庫字段索引映射 
                    //sqlbulk.ColumnMappings.Add("ID", "ID");                 // 若源表與目標表完全一致亦可忽略映射
                    //sqlbulk.ColumnMappings.Add("Station", "Station");       // 建立映射關係時一定注意大小寫要一致
                    //sqlbulk.ColumnMappings.Add("ItemID", "ItemID");
                    //sqlbulk.ColumnMappings.Add("X", "X");
                    //sqlbulk.ColumnMappings.Add("Y", "Y");
                    //sqlbulk.ColumnMappings.Add("Y_Min", "Y_Min");
                    //sqlbulk.ColumnMappings.Add("Y_Max", "Y_Max");
                    //sqlbulk.ColumnMappings.Add("UpdTime", "UpdTime");
                    sqlbulk.WriteToServer(srcTable);                          //導入
                    sqlbulk.Close();


    源表(DataSet):

    guid int string float float float float datetime
    ID Station ItemID X Y X_Mim X_Max UpdTime
    66743ebb-1e54-450e-a100-0a7aa9adacb1 1 3 0 0 0 29.66696 2014/8/25 下午 07:19:17
    360be30d-43e7-419c-88ac-834de8446810 1 3 0.1 0 0 29.66696 2014/8/25 下午 07:19:23
    35c45e27-aa21-46c7-b7c7-5064c907a563 1 3 0.2 0 0 22.39258 2014/8/25 下午 07:19:39
    19eecd71-3817-4d30-bb03-7348382c58fa 1 3 0.3 0 0 22.39258 2014/8/25 下午 07:19:39
    abbe7df2-219b-4e48-a574-2dbc426d6d57 1 3 0.4 0 0 22.39258 2014/8/25 下午 07:19:39
    719ca1c3-ad36-4788-bc7c-7f4c35f2d9dd 1 3 0.5 0 0 21.59505 2014/8/25 下午 07:19:39
    7090b973-90ae-4a82-ba46-d007d4df5d84 1 3 0.6 0 0 21.59505 2014/8/25 下午 07:19:39
    dabddecc-43ed-41ba-a06f-60002d26bd89 1 3 0.7 0 0 21.59505 2014/8/25 下午 07:19:39
    734177cd-1f6e-488b-a175-9d9857b59d0c 1 3 0.8 0 0 22.12674 2014/8/25 下午 07:19:39
    cbcbaba8-0b7f-42f8-96f3-11d04842e43d 1 3 0.9 0 0 22.12674 2014/8/25 下午 07:19:39
    73a4e861-d1ee-42cf-9011-1b9f7389163d 1 3 1 0 0 22.12674 2014/8/25 下午 07:19:39
    18b8e049-adf5-48be-8a3f-0b7f89547e3c 1 3 1.1 0 0 21.41618 2014/8/25 下午 07:19:39
    eb437509-7679-4190-b7fe-3e19657ecc52 1 3 1.2 0 0 21.41618 2014/8/25 下午 07:19:39
    1ab6b965-652c-4b4d-90f4-69b17e24bd04 1 3 1.3 0 0 21.2406 2014/8/25 下午 07:19:39
    a26e3325-4800-4068-9630-61e84a4f8098 1 3 1.4 0 0 21.2406 2014/8/25 下午 07:19:39
    f7d8d3a0-ee86-4987-9c05-ffc5323ad6bb 1 3 1.5 0 0 21.55348 2014/8/25 下午 07:19:39
    96e1edb2-99d0-4b03-adba-420c91ec41b2 1 3 1.6 0 0 21.55348 2014/8/25 下午 07:19:39
    ddcff5ab-daec-4c3e-9262-2b06ea9445f8 1 3 1.7 0 0 21.91997 2014/8/25 下午 07:19:40
    ded84678-f556-4b41-ab85-3e978d22045c 1 3 1.8 0 0 21.91997 2014/8/25 下午 07:19:40
    0108cd41-88eb-4762-93e4-ca3cc779e9a9 1 3 1.9 0 0 21.91997 2014/8/25 下午 07:19:40
    18a94a77-ca00-4eb9-a57c-091484be0bb6 1 3 2 0 0 21.78741 2014/8/25 下午 07:19:40
    46d628f0-6074-4ef0-b9d9-8e0fb6d4be6d 1 3 2.1 0 0 21.78741 2014/8/25 下午 07:19:40
    3e131847-a47d-4c5e-b172-4493364ed1df 1 3 2.2 0 0 21.78741 2014/8/25 下午 07:19:40
    4459283c-0f1b-41c8-8e66-0360d81d716d 1 3 2.3 0 0 21.41782 2014/8/25 下午 07:19:40
    841a00ab-51f7-48af-9b56-5d29601dd8bd 1 3 2.4 0 0 21.41782 2014/8/25 下午 07:19:40
    657a1118-460a-41e0-9b14-9b4e6210f2fc 1 3 2.5 0 0 21.41782 2014/8/25 下午 07:19:40
    f1b44df5-c25b-4efc-8537-e3808dd10b5a 1 3 2.6 0 0 21.78869 2014/8/25 下午 07:19:40
    987cd529-4f74-456e-bd33-d4727f972390 1 3 2.7 0 0 21.78869 2014/8/25 下午 07:19:40
    4bd12226-bc29-4ba3-abc0-2e27b7e7460f 1 3 2.8 0 0 21.78869 2014/8/25 下午 07:19:40
    c2013c71-15bb-462e-aa0c-c2022fbca0fb 1 3 2.9 0 0 21.76454 2014/8/25 下午 07:19:40
    5a2b0736-973d-44e9-988d-c1ff8bcbe495 1 3 3 0 0 21.76454 2014/8/25 下午 07:19:40

    目的表(SQL Server)内容:

    GUID INT CHAR NUM(6,1) NUM(10,2) NUM(10,2) NUM(10,2) DATETIME
    ID Station ItemID X Y X_Mim X_Max UpdTime
    66743EBB-1E54-450E-A100-0A7AA9ADACB1 1 3 0 0 0 29.66 19:17.5
    360BE30D-43E7-419C-88AC-834DE8446810 1 3 0.1 0 0 29.66 19:23.8
    35C45E27-AA21-46C7-B7C7-5064C907A563 1 3 0.2 0 0 22.39 19:39.3
    19EECD71-3817-4D30-BB03-7348382C58FA 1 3 0.3 0 0 22.39 19:39.3
    ABBE7DF2-219B-4E48-A574-2DBC426D6D57 1 3 0.4 0 0 22.39 19:39.4
    719CA1C3-AD36-4788-BC7C-7F4C35F2D9DD 1 3 0.5 0 0 21.59 19:39.4
    DABDDECC-43ED-41BA-A06F-60002D26BD89 1 3 0.6 0 0 21.59 19:39.5
    7090B973-90AE-4A82-BA46-D007D4DF5D84 1 3 0.6 0 0 21.59 19:39.5
    CBCBABA8-0B7F-42F8-96F3-11D04842E43D 1 3 0.8 0 0 22.12 19:39.6
    734177CD-1F6E-488B-A175-9D9857B59D0C 1 3 0.8 0 0 22.12 19:39.6
    73A4E861-D1EE-42CF-9011-1B9F7389163D 1 3 1 0 0 22.12 19:39.7
    18B8E049-ADF5-48BE-8A3F-0B7F89547E3C 1 3 1.1 0 0 21.41 19:39.7
    EB437509-7679-4190-B7FE-3E19657ECC52 1 3 1.2 0 0 21.41 19:39.8
    1AB6B965-652C-4B4D-90F4-69B17E24BD04 1 3 1.2 0 0 21.24 19:39.8
    A26E3325-4800-4068-9630-61E84A4F8098 1 3 1.3 0 0 21.24 19:39.9
    F7D8D3A0-EE86-4987-9C05-FFC5323AD6BB 1 3 1.5 0 0 21.55 19:39.9
    96E1EDB2-99D0-4B03-ADBA-420C91EC41B2 1 3 1.6 0 0 21.55 19:40.0
    DED84678-F556-4B41-AB85-3E978D22045C 1 3 1.7 0 0 21.91 19:40.1
    DDCFF5AB-DAEC-4C3E-9262-2B06EA9445F8 1 3 1.7 0 0 21.91 19:40.0
    0108CD41-88EB-4762-93E4-CA3CC779E9A9 1 3 1.8 0 0 21.91 19:40.1
    18A94A77-CA00-4EB9-A57C-091484BE0BB6 1 3 2 0 0 21.78 19:40.1
    46D628F0-6074-4EF0-B9D9-8E0FB6D4BE6D 1 3 2 0 0 21.78 19:40.2
    4459283C-0F1B-41C8-8E66-0360D81D716D 1 3 2.2 0 0 21.41 19:40.3
    3E131847-A47D-4C5E-B172-4493364ED1DF 1 3 2.2 0 0 21.78 19:40.2
    841A00AB-51F7-48AF-9B56-5D29601DD8BD 1 3 2.4 0 0 21.41 19:40.4
    657A1118-460A-41E0-9B14-9B4E6210F2FC 1 3 2.5 0 0 21.41 19:40.5
    F1B44DF5-C25B-4EFC-8537-E3808DD10B5A 1 3 2.5 0 0 21.78 19:40.6
    987CD529-4F74-456E-BD33-D4727F972390 1 3 2.7 0 0 21.78 19:40.6
    4BD12226-BC29-4BA3-ABC0-2E27B7E7460F 1 3 2.7 0 0 21.78 19:40.7
    C2013C71-15BB-462E-AA0C-C2022FBCA0FB 1 3 2.9 0 0 21.76 19:40.8

    主要问题在写入SQL Server后,Y字段内容不正确,请各位老师指教,谢谢

    • 已编辑 markihuo 2014年8月25日 13:40
    2014年8月25日 13:18

答案