2012-01-11 11 views
-1

私はExcelシートの特定の列を読み込もうとしていますが、date、mobilenumber、およびいくつかの列では、列を読み取ることができますが、値をデータベースに挿入する際に問題があります。 .................サーバーにデータを挿入しますか?

public static DataTable columnNamessheet2(String excelFile) 
    { 
     string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFile + ";Extended Properties='Excel 12.0;'"; 
     string connectionstring = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DebitCare;Data Source=SSDEV7-HP\\SQLEXPRESS"; 

     using (OleDbConnection conn1 = new OleDbConnection(connString)) 
     { 
      SqlConnection SqlConn1 = new SqlConnection(connectionstring); 
      SqlConn1.Open(); 
      OleDbCommand odc1 = new OleDbCommand(string.Format("Select LOAN_NO,DOB,DEALER_NAME,CUST_MOBILE_NO FROM [ICICI TW DUMP$]"), conn1); 
      conn1.Open(); 
      OleDbDataReader reader1 = odc1.ExecuteReader(); 
      int LOAN_NO = reader1.GetOrdinal("LOAN_NO"); 
      int DEALER_NAME = reader1.GetOrdinal("DEALER_NAME"); 
      int DOB = reader1.GetOrdinal("DOB"); 
      int CUST_MOBILE_NO = reader1.GetOrdinal("CUST_MOBILE_NO"); 
      while (reader1.Read()) 
      { 
       string LnNumber = reader1.GetValue(LOAN_NO).ToString(); 
       string cname = reader1.GetValue(DEALER_NAME).ToString(); 
       string CDOB = reader1.GetValue(DOB).ToString(); 
       string CMobNo = reader1.GetValue(CUST_MOBILE_NO).ToString(); 
      } 
      DataTable sheetSchema1 = reader1.GetSchemaTable(); 
      SqlBulkCopy sqlbulk = new SqlBulkCopy(SqlConn1); 
      sqlbulk.DestinationTableName = "DebitCare"; 
      sqlbulk.ColumnMappings.Add("LnNumber", "CUSTOMER_LOAN_NO"); 
      sqlbulk.ColumnMappings.Add("cname", "CUSTOMER_NAME"); 
      sqlbulk.ColumnMappings.Add("CDOB", "DOB"); 
      sqlbulk.ColumnMappings.Add("CMobNo", "CUST_MOBILE_NO"); 
      sqlbulk.WriteToServer(reader1); 
      return sheetSchema1; 
     } 

    } 
+2

何が起こりますか? – dbrin

+0

エラーが発生しました.......... "指定されたColumnName 'LnNumber'がデータソース内のどの列とも一致しません。 –

+0

問題は何ですか?どのようなエラーメッセージが表示されますか? – saeedku

答えて

0

次に、あなたのライン

sqlbulk.ColumnMappings.Add("LnNumber", "CUSTOMER_LOAN_NO"); 

がここ

sqlbulk.ColumnMappings.Add("LOAN_NO","CUSTOMER_LOAN_NO"); 

は、このユーティリティのドキュメントがあると言う必要があります:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopycolumnmapping.aspx

+0

"CUSTOMER_LOAN_NO"は"LOAN_NO"はエクセルファイルの列名ですが、変換する際にこれらの列を読み込むのに問題があります。int、string、および\を取った理由 - Raghu Bandaru –

+0

これはこれではいけません: sqlbulk.ColumnMappings.Add( "CUSTOMER_LOAN_NO"、 "LOAN_NO"); – dbrin

+0

指定されたColumnName 'CUSTOMER_LOAN_NO'は、データソース内の任意の列と一致しません。 –

関連する問題