首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server批量上载在C#中没有错误但没有插入数据

Server批量上载在C#中没有错误但没有插入数据
EN

Stack Overflow用户
提问于 2015-01-12 15:21:49
回答 1查看 2.1K关注 0票数 1

我正在通过C#进行批量上传。

这不是一段复杂的代码,而是挣扎,因为尽管代码成功运行,但当我对目标表运行查询时,我没有看到任何关于数据库结束的内容。

表是awsbillingdetailed_w_res_tags

代码语言:javascript
复制
public static string BulkUpload(DataTable dt, string tableName, string connectionString)
     {
          string code = "";

//just resizing datatable so that it makes it smaller for testing. Only 5 rows.
          dt = ReduceDataTableSize(dt, 5);

          dt.TableName = tableName;
          string constr = connectionString;
          try
          {
               using (SqlConnection connection = new SqlConnection(constr))
               {
                    connection.Open();
                    //CreatingTranscationsothatitcanrollbackifgotanyerrorwhileuploading
                    SqlTransaction trans = connection.BeginTransaction();
                    //Start bulkCopy
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection,
                    SqlBulkCopyOptions.TableLock |
                    SqlBulkCopyOptions.FireTriggers,
                    trans))
                    {
                         //Fix up default values
                         if(dt.Rows.Count > 0)
                         {
                                for (int i = 0; i < dt.Rows.Count; i++)
                              {
                                   dt.Rows[i]["InvoiceId"] = dt.Rows[i]["InvoiceId"].ToString().Replace("\"", "");
                                   dt.Rows[i]["PayerAccountId"] = dt.Rows[i]["PayerAccountId"].ToString().Replace("\"", "");
                                   dt.Rows[i]["LinkedAccountId"] = dt.Rows[i]["LinkedAccountId"].ToString().Replace("\"", "");
                                   dt.Rows[i]["RecordType"] = dt.Rows[i]["RecordType"].ToString().Replace("\"", "");
                                   dt.Rows[i]["ProductName"] = dt.Rows[i]["ProductName"].ToString().Replace("\"", "");
                                   dt.Rows[i]["RateId"] = dt.Rows[i]["RateId"].ToString().Replace("\"", "");
                                   dt.Rows[i]["SubscriptionId"] = dt.Rows[i]["SubscriptionId"].ToString().Replace("\"", "");
                                   dt.Rows[i]["PricingplanId"] = dt.Rows[i]["PricingplanId"].ToString().Replace("\"", "");
                                   dt.Rows[i]["UsageType"] = dt.Rows[i]["UsageType"].ToString().Replace("\"", "");
                                   dt.Rows[i]["PricingplanId"] = dt.Rows[i]["PricingplanId"].ToString().Replace("\"", "");
                                   dt.Rows[i]["Operation"] = dt.Rows[i]["Operation"].ToString().Replace("\"", "");
                                   dt.Rows[i]["AvailabilityZone"] = dt.Rows[i]["AvailabilityZone"].ToString().Replace("\"", "");
                                   dt.Rows[i]["ReservedInstance"] = dt.Rows[i]["ReservedInstance"].ToString().Replace("\"", "");
                                      dt.Rows[i]["ItemDescription"] = dt.Rows[i]["ItemDescription"].ToString().Replace("\"", "");
                                      dt.Rows[i]["ResourceId"] = dt.Rows[i]["ResourceId"].ToString().Replace("\"", "");
                                      dt.Rows[i]["RecordId"] = dt.Rows[i]["RecordId"].ToString().Replace("\"", "");

                                   dt.Rows[i]["UsageQuantity"] = dt.Rows[i]["UsageQuantity"].ToString().Replace("\"", "");
                                   dt.Rows[i]["usagestartdate"] = dt.Rows[i]["usagestartdate"].ToString() == "" ? DateTime.Now.AddYears(-2014) : Convert.ToDateTime((dt.Rows[i]["usagestartdate"].ToString().Replace("\"", "")));
                                   dt.Rows[i]["usageenddate"] = dt.Rows[i]["usageenddate"].ToString() == "" ? DateTime.Now.AddYears(-2014) : Convert.ToDateTime((dt.Rows[i]["usageenddate"].ToString().Replace("\"", "")));
                                   dt.Rows[i]["UsageQuantity"] = dt.Rows[i]["UsageQuantity"].ToString().Replace("\"", "");
                                   dt.Rows[i]["BlendedRate"] = dt.Rows[i]["BlendedRate"].ToString().Replace("\"", "");
                                   dt.Rows[i]["BlendedCost"] = dt.Rows[i]["BlendedCost"].ToString().Replace("\"", "");
                                   dt.Rows[i]["UnBlendedRate"] = dt.Rows[i]["UnBlendedRate"].ToString().Replace("\"", "");
                                   dt.Rows[i]["UnBlendedCost"] = dt.Rows[i]["UnBlendedCost"].ToString().Replace("\"", "");


                              }
                         }

                        bulkCopy.DestinationTableName = tableName;
                        bulkCopy.ColumnMappings.Add("InvoiceId", "invoiceid");
                        bulkCopy.ColumnMappings.Add("PayerAccountId", "payeraccountid");
                        bulkCopy.ColumnMappings.Add("LinkedAccountId", "linkedaccountid");
                        bulkCopy.ColumnMappings.Add("RecordType", "recordtype");
                        bulkCopy.ColumnMappings.Add("ProductName", "productname");
                        bulkCopy.ColumnMappings.Add("RateId", "rateid");
                        bulkCopy.ColumnMappings.Add("SubscriptionId", "subscriptionid");
                        bulkCopy.ColumnMappings.Add("PricingplanId", "pricingplanid");
                        bulkCopy.ColumnMappings.Add("UsageType", "usagetype");
                        bulkCopy.ColumnMappings.Add("Operation", "operation");
                        bulkCopy.ColumnMappings.Add("AvailabilityZone", "availabilityzone");
                        bulkCopy.ColumnMappings.Add("ReservedInstance", "reservedinstance");
                        bulkCopy.ColumnMappings.Add("ItemDescription", "itemdescription");
                        bulkCopy.ColumnMappings.Add("UsageStartDate", "usagestartdate");
                        bulkCopy.ColumnMappings.Add("UsageEndDate", "usageenddate");
                       bulkCopy.ColumnMappings.Add("UsageQuantity", "usagequantity");
                        bulkCopy.ColumnMappings.Add("BlendedRate", "blendedrate");
                        bulkCopy.ColumnMappings.Add("BlendedCost", "blendedcost");
                        bulkCopy.ColumnMappings.Add("UnBlendedRate", "unblendedrate");
                        bulkCopy.ColumnMappings.Add("UnBlendedCost", "unblendedcost");
                        bulkCopy.ColumnMappings.Add("resourceid", "resourceid");

                         //write the data in the "dataTable"
                         bulkCopy.WriteToServer(dt);

                         code = "Data Processed Successfully";
                    }
               }
               return code;
          }



          catch (Exception ex)
          {
              code = "Error while processing file";
              System.Diagnostics.Debug.Write("EXCEPTION BulkUpload: " + ex.ToString());
          }

          return code;
     }

我还进行了双重检查,以确保目前没有双引号或任何空白字段。

我没有错误,但实际上什么都没有进入DB。知道为什么吗?试着调试它花了几个小时,但是看不到任何问题。阅读大量论坛,但没有引导我去哪里。非常感谢你的帮助。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 15:28:49

好的,我刚刚意识到我没有完成/提交交易。有趣的是,我们需要写代码,呼救,然后我们突然得到它。

本质上是失踪..。

代码语言:javascript
复制
trans.Commit();

在大容量上传之后。谢谢和为浪费你的时间道歉 :)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27905274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档