2017-02-14 83 views
0

我想從Excel中插入數據庫,並且我已經從Excel中獲取所有值。當我插入我的數據庫時,我得到了Factal異常。我如何從這個異常中恢復?Excel到DataTable插入

  MySqlCommand commd = new MySqlCommand(); 
      commd.Connection = OpenConnection(); 

      commd.CommandText = "INSERT INTO sqa_tracking(IID,STARTDATE,ENDDATE,WEEK,SUPPLIER,LINENO,ORDER_ID,BRCARID,PAGE_FIRST,PAGE_LAST,PAGE_COUNT,ARTICLE_NO,COUNT_LINENO,TOTAL_NR_OF_ITEMS,CAR_SUPPLIER,CONTENT_PROVIDER_NAME,MANIFESTATION,FACTOR,UNITS,DATE_OF_SUBMISSION,UNITS_KEY,COUNT_UNITS_KEY,TOTAL_NR_OF_UNITS,ERRORS,KPI_ERRORS,OBII_ELEMENT,CAR_FIELD_NAME,ERROR_TYPE,WRONG_CAPTURE_IN_FILE,CORRECT_CAPTURE_WOULD_BE,REPEATING_IN_CAR,SOURCE_FILE_TYPE,FULL_AUTOM_CONV,ERROR_IN_SOURCE_FILE,ROOT_CAUSE_OF_THE_ERROR,PREVENTIVE_MEASURES,DATE_OF_IMPLEMENTATION,DATE_OF_TRANSMISSION,VALIDATED) VALUES (@IID,@STARTDATE,@ENDDATE,@WEEK,@SUPPLIER,@LINENO,@ORDER_ID,@BRCARID,@PAGE_FIRST,@PAGE_LAST,@PAGE_COUNT,@ARTICLE_NO,@COUNT_LINENO,@TOTAL_NR_OF_ITEMS,@CAR_SUPPLIER,@CONTENT_PROVIDER_NAME,@MANIFESTATION,@FACTOR,@UNITS,@DATE_OF_SUBMISSION,@UNITS_KEY,@COUNT_UNITS_KEY,@TOTAL_NR_OF_UNITS,@ERRORS,@KPI_ERRORS,@OBII_ELEMENT,@CAR_FIELD_NAME,@ERROR_TYPE,@WRONG_CAPTURE_IN_FILE,@CORRECT_CAPTURE_WOULD_BE,@REPEATING_IN_CAR,@SOURCE_FILE_TYPE,@FULL_AUTOM_CONV,@ERROR_IN_SOURCE_FILE,@ROOT_CAUSE_OF_THE_ERROR,@PREVENTIVE_MEASURES,@DATE_OF_IMPLEMENTATION,@DATE_OF_SUBMISSION,@VALIDATED) "; 


      commd.Parameters.AddWithValue("@STARTDATE", StartDate); 
      commd.Parameters.AddWithValue("@ENDDATE", EndDate); 
      commd.Parameters.AddWithValue("@WEEK", Week); 
      commd.Parameters.AddWithValue("@SUPPLIER", Supplier); 
      commd.Parameters.AddWithValue("@LINENO", LineNo); 
      commd.Parameters.AddWithValue("@ORDER_ID", ORDERID); 
      commd.Parameters.AddWithValue("@BRCARID", ""); 
      commd.Parameters.AddWithValue("@PAGE_FIRST", PageFirst); 
      commd.Parameters.AddWithValue("@PAGE_LAST", Pagelast); 
      commd.Parameters.AddWithValue("@PAGE_COUNT", Pagecount); 
      commd.Parameters.AddWithValue("@ARTICLE_NO", ArticleNo); 
      commd.Parameters.AddWithValue("@COUNT_LINENO", COUNTLineNo); 
      commd.Parameters.AddWithValue("@TOTAL_NR_OF_ITEMS", Totalnrofitems); 
      commd.Parameters.AddWithValue("@CAR_SUPPLIER", CARSupplier); 
      commd.Parameters.AddWithValue("@CONTENT_PROVIDER_NAME", ContentProvidename); 
      commd.Parameters.AddWithValue("@MANIFESTATION", Manifestation); 
      commd.Parameters.AddWithValue("@FACTOR", AU); 
      commd.Parameters.AddWithValue("@UNITS", Units); 
      commd.Parameters.AddWithValue("@DATE_OF_SUBMISSION", Dateoftransmission); 
      commd.Parameters.AddWithValue("@UNITS_KEY", unitskey); 
      commd.Parameters.AddWithValue("@COUNT_UNITS_KEY", COUNTunitskey); 
      commd.Parameters.AddWithValue("ERRORS", Errors); 
      commd.Parameters.AddWithValue("@KPI_ERRORS", KPIErrors); 
      commd.Parameters.AddWithValue("@OBII_ELEMENT", OBIIElement); 
      commd.Parameters.AddWithValue("@CAR_FIELD_NAME", CARFieldname); 
      commd.Parameters.AddWithValue("@ERROR_TYPE", Errortype); 
      commd.Parameters.AddWithValue("@IID", IID); 
      commd.Parameters.AddWithValue("@WRONG_CAPTURE_IN_FILE", Wrongcaptureinfile); 
      commd.Parameters.AddWithValue("@CORRECT_CAPTURE_WOULD_BE", Correctcapturewouldbe); 
      commd.Parameters.AddWithValue("@REPEATING_IN_CAR", RepeatinginCAR); 
      commd.Parameters.AddWithValue("@SOURCE_FILE_TYPE", Sourcefiletype); 
      commd.Parameters.AddWithValue("@FULL_AUTOM_CONV", FulAutomConv); 
      commd.Parameters.AddWithValue("@ERROR_IN_SOURCE_FILE", Errorinsourcefile); 
      commd.Parameters.AddWithValue("@ROOT_CAUSE_OF_THE_ERROR", RootCauseoftheError); 
      commd.Parameters.AddWithValue("@PREVENTIVE_MEASURES", PreventiveMeasures); 
      commd.Parameters.AddWithValue("@DATE_OF_IMPLEMENTATION", DateofImplementation); 
      commd.Parameters.AddWithValue("@VALIDATED", Validated); 
      commd.ExecuteNonQuery();` 

我使用內聯查詢,並從DataTable中獲取參數值。

+0

粘貼這裏確切的異常和它拋出的行 – Pikoh

+0

在commd.ExecuteNonQuery();命令執行期間遇到致命錯誤;線 –

回答

1

請務必記住,僅在命令執行期間發生致命錯誤的原因是參數名稱不正確。

如此更正參數值以避免執行命令期間的胎兒錯誤 您尚未爲TOTAL_NR_OF_UNITS & DATE_OF_TRANSMISSION提供參數值。

另請按照插入查詢中的順序,在添加參數的同時,更易於排除故障。

commd.Parameters.AddWithValue("@TOTAL_NR_OF_UNITS",TotalNrOfUnits); 
commd.Parameters.AddWithValue("@DATE_OF_TRANSMISSION", DateOfTransmission); 
0

要麼這個。 。 。

SqlCommand cmd = new SqlCommand("insert into tbl_insert values (@id,@name,@Email,@City)"); 
cmd.Parameters.AddWithValue("@id", Convert.ToInt32(txtId.Text)); 
cmd.Parameters.AddWithValue("@name", txtName.Text); 
cmd.Parameters.AddWithValue("@Email", txtEmail.Text); 
cmd.Parameters.AddWithValue("@City", txtboxCity.Text); 

...或...這

con.Open(); 
SqlCommand cmd = new SqlCommand(@"insert into tbl_insert values(@name,@email,@add)", con); 
cmd.Parameters.AddWithValue("@name", txtname.Text); 
cmd.Parameters.AddWithValue("@email", txtemail.Text); 
cmd.Parameters.AddWithValue("@add", txtadd.Text); 
cmd.ExecuteNonQuery(); 
con.Close(); 

...應該能正常運行。