Note that there are some explanatory texts on larger screens.

plurals
  1. POCsvReader Mapping and Conversion : No coercion operator
    primarykey
    data
    text
    <p>First, thank you for your time. I'm trying to use the CsvHelper for the first time along with a custom class and custom map. I'm getting "No cercion operator is defined between types 'System.Int32' and 'System.String'"</p> <p>Here are my classes:</p> <pre><code>class Vendor { public string VENDORID { get; set; } public string VENDORNAME { get; set; } public string VENDORSHORTNAME { get; set; } public string VENDORCHECKNAME { get; set; } public string HOLD { get; set; } public string VENDORSTATUS { get; set; } public string VENDORCLASSID { get; set; } public string PRIMARYVENDORADDRESSID { get; set; } public string VENDORCONTACT { get; set; } public string ADDRESS1 { get; set; } public string ADDRESS2 { get; set; } public string ADDRESS3 { get; set; } public string CITY { get; set; } public string STATE { get; set; } public string ZIPCODE { get; set; } public string COUNTRYCODE { get; set; } public string COUNTRY { get; set; } public string PHONE1 { get; set; } public string PHONE2 { get; set; } public string PHONE3 { get; set; } public string FAXNUMBER { get; set; } public string VENDORACCOUNTNUMBER { get; set; } public string PAYMENTTERMSID { get; set; } public string TAXIDNUMBER { get; set; } public string TAXREGISTRATIONNUMBER { get; set; } public string USER_DEFINED1 { get; set; } public string USER_DEFINED2 { get; set; } public string TAX1099TYPE { get; set; } public string TAX1099BOXNUMBER { get; set; } public string PURCHASESACCOUNT { get; set; } public string TRANSITROUTINGNUMBER { get; set; } public string EFTBANKACCOUNTNUMBER { get; set; } } class VendorMap : CsvClassMap&lt;Vendor&gt; { public override void CreateMap() { Map(m =&gt; m.VENDORID).Name("Vendor ID"); Map(m =&gt; m.VENDORNAME).Name("Vendor name"); Map(m =&gt; m.VENDORSHORTNAME).Name("Vendor short name"); Map(m =&gt; m.VENDORCHECKNAME).Name("Vendor check name"); Map(m =&gt; m.HOLD).Name("Hold").Default(1); Map(m =&gt; m.VENDORSTATUS).Name("Vendor status").Default("Active"); Map(m =&gt; m.VENDORCLASSID).Name("Vendor class ID"); Map(m =&gt; m.PRIMARYVENDORADDRESSID).Name("Primary vendor address ID"); Map(m =&gt; m.VENDORCONTACT).Name("Vendor contact"); Map(m =&gt; m.ADDRESS1).Name("Address 1"); Map(m =&gt; m.ADDRESS2).Name("Address 2"); Map(m =&gt; m.ADDRESS3).Name("Address 3"); Map(m =&gt; m.CITY).Name("City"); Map(m =&gt; m.STATE).Name("State"); Map(m =&gt; m.ZIPCODE).Name("Zip Code"); Map(m =&gt; m.COUNTRYCODE).Name("Country code"); Map(m =&gt; m.COUNTRY).Name("Country"); Map(m =&gt; m.PHONE1).Name("Phone 1"); Map(m =&gt; m.PHONE2).Name("Phone 2"); Map(m =&gt; m.PHONE3).Name("Phone 3"); Map(m =&gt; m.FAXNUMBER).Name("Fax number"); Map(m =&gt; m.VENDORACCOUNTNUMBER).Name("Vendor account number"); Map(m =&gt; m.PAYMENTTERMSID).Name("Payment terms ID"); Map(m =&gt; m.TAXIDNUMBER).Name("Tax ID number"); Map(m =&gt; m.TAXREGISTRATIONNUMBER).Name("Tax registration number"); Map(m =&gt; m.USER_DEFINED1).Name("User-defined 1"); Map(m =&gt; m.USER_DEFINED2).Name("User-defined 2"); Map(m =&gt; m.TAX1099TYPE).Name("Tax 1099 type:"); Map(m =&gt; m.TAX1099BOXNUMBER).Name("Tax 1099 box number"); Map(m =&gt; m.PURCHASESACCOUNT).Name("Purchases account"); Map(m =&gt; m.TRANSITROUTINGNUMBER).Name("Transit Routing Number"); Map(m =&gt; m.EFTBANKACCOUNTNUMBER).Name("EFT Bank Account Number"); } } </code></pre> <p>Here is where I am reading a file:</p> <pre><code>CsvReader csv = new CsvReader(reader); csv.Configuration.HasHeaderRecord = true; csv.Configuration.RegisterClassMap&lt;VendorMap&gt;(); List&lt;Vendor&gt; vendors = null; try { vendors = csv.GetRecords&lt;Vendor&gt;().ToList(); </code></pre> <p>Ideally, I would like the HOLD, TAX99TYPE, and TAX99BOXNUMBER properties types to be "short". However, with that I received the error "The conversion cannot be performed".</p> <p>Here is part of my test CSV:</p> <pre><code>"Vendor ID","Vendor name","Vendor short name","Vendor check name","Hold","Vendor status","Vendor clas "AA0011","UAT Demo","","","","Active","","Residence","Demo UAT","TESTING","TESTING","","TESTING","KS" "AA0011","UAT Demo","","","","Active","","Supply","Demo UAT","NEW ADDRESS","NEW ADDRESS","","NEW ADDR </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload