2015-05-23 3 views
0

В настоящее время я извлекаю данные из XML-файла и копируя его для хранения в базе данных. Есть ли способ добавить мои собственные значения во время SqlBulkCopy? Я хочу добавить свои собственные значения itemsTotalPrice, поскольку я хочу рассчитать общую стоимость предметов, но не могу заставить его работать. Как мне обойти это?Добавление собственного значения в SqlBulkCopy

DataTable sourceData = ds.Tables["Invoice"]; 
sourceData.Columns.Add("itemsTotalPrice", typeof(System.Decimal)); 
sourceData.Columns.Add("invoiceTotal", typeof(System.Decimal)); 
sqlConn.Open(); 
     using (SqlBulkCopy sqlbc = new SqlBulkCopy(sqlConn)) 
      { 
       sqlbc.DestinationTableName = "Invoice"; 
       sqlbc.ColumnMappings.Add("invoiceDate", "invoiceDate"); 
       sqlbc.ColumnMappings.Add("orderID", "orderID"); 
       sqlbc.ColumnMappings.Add("sellerID", "sellerID"); 
       sqlbc.ColumnMappings.Add("itemsTotalPrice", itemsTotalPrice); 
       //sqlbc.ColumnMappings.Add("shippingCharges", "shippingCharges"); 
       sqlbc.ColumnMappings.Add("invoiceTotal", "invoiceTotal"); 
       sqlbc.WriteToServer(sourceData); 
      } 
+0

введите код и код ошибки? –

+0

@DenishParvadia Я отредактировал и добавил полный код – zana

+0

plz разместил ваше сообщение об ошибке? –

ответ

0

Вы можете попробовать путем загрузки Xml в DataTable, изменять значения в столбцах по вашему выбору, и попытаться использовать WriteToServer.

+0

У меня на самом деле уже есть надежный и писательский сервер. я редактировал код в своих qns, но как мне изменить значения, чтобы я мог добавить свое значение? – zana

+0

человек, если у вас есть «DataTable», вы можете делать все, что захотите, с ним. Инициируйте по строкам, измените значения столбцов. Это невозможно? –

0

справка код.

if (FileUploadControl.HasFile) 
     { 


      try 
      { 
       if (FileUploadControl.PostedFile.ContentType == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" || FileUploadControl.PostedFile.ContentType == "application/vnd.ms-excel") 
       { 
        if (FileUploadControl.PostedFile.ContentLength >= 0) 
        { 
         string filename = Path.GetFileNameWithoutExtension(FileUploadControl.FileName); 
         string fileExt = Path.GetExtension(FileUploadControl.FileName); 

         FileUploadControl.SaveAs(Server.MapPath("~/DownloadedExcelFilesOp4/myfile" + fileExt)); 
         if (FileUploadControl.PostedFile.ContentLength == 0) 
         { 
          lblMsg.Text = fun.UploadStatus; 
          lblMsg.ForeColor = Color.Green; 
         } 
         else 
          lblMsg.Text = fun.UploadStatus; 
         lblMsg.ForeColor = Color.Green; 
         string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HRD=YES;IMEX=1'", Server.MapPath(@"~\DownloadedExcelFilesOp4\myfile" + fileExt));// + "\\" + FileUploadControl.PostedFile.FileName.ToString()); 
         using (OleDbConnection connection = new OleDbConnection(excelConnectionString)) 
         { 
          OleDbCommand command = new OleDbCommand(("Select [Customer] ,[InvoiceDate] , [InvoiceNo] , [CustomerPo],[SoLine] ,[VendorName] ,[Category] ,[Item] ,[PickQty] ,[Price] ,[PriceExtentio] FROM [Sheet1$]"), connection); 
          connection.Open(); 
          using (DbDataReader dr = command.ExecuteReader()) 
          { 
           using (SqlBulkCopy bulkCopy = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString)) 
           { 
            bulkCopy.DestinationTableName = "TempExamQuation4Master"; 
            bulkCopy.ColumnMappings.Add("Customer", "Customer"); 
            bulkCopy.ColumnMappings.Add("InvoiceDate", "InvoiceDate"); 
            bulkCopy.ColumnMappings.Add("InvoiceNo", "InvoiceNo"); 
            bulkCopy.ColumnMappings.Add("CustomerPo", "CustomerPo"); 
            bulkCopy.ColumnMappings.Add("SoLine", "SoLine"); 
            bulkCopy.ColumnMappings.Add("VendorName", "VendorName"); 
            bulkCopy.ColumnMappings.Add("Categor", "Categor"); 
            bulkCopy.ColumnMappings.Add("Item", "Item"); 
            bulkCopy.ColumnMappings.Add("PickQty", "PickQty"); 
            bulkCopy.ColumnMappings.Add("Price", "Price"); 
            bulkCopy.ColumnMappings.Add("PriceExtentio", "PriceExtentio"); 

            bulkCopy.WriteToServer(dr); 
           } 
          } 
         } 
+0

Большое вам спасибо, хотя он все еще был не в состоянии помочь мне ответить – zana

Смежные вопросы