public void GetValuesTest() { var s = new StringBuilder(); s.AppendLine("Boolean,Byte,Bytes,Char,Chars,DateTime,Decimal,Double,Float,Guid,Short,Int,Long,Null"); s.AppendLine("true,1,0x0102,a,ab,1/1/2019,1.23,4.56,7.89,eca0c8c6-9a2a-4e6c-8599-3561abda13f1,1,2,3,null"); using (var reader = new StringReader(s.ToString())) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Configuration.Delimiter = ","; csv.Configuration.TypeConverterOptionsCache.GetOptions <string>().NullValues.Add("null"); var dataReader = new CsvDataReader(csv); dataReader.Read(); Assert.AreEqual(true, dataReader.GetBoolean(0)); Assert.AreEqual(1, dataReader.GetByte(1)); byte[] byteBuffer = new byte[2]; dataReader.GetBytes(2, 0, byteBuffer, 0, byteBuffer.Length); Assert.AreEqual(0x1, byteBuffer[0]); Assert.AreEqual(0x2, byteBuffer[1]); Assert.AreEqual('a', dataReader.GetChar(3)); char[] charBuffer = new char[2]; dataReader.GetChars(4, 0, charBuffer, 0, charBuffer.Length); Assert.AreEqual('a', charBuffer[0]); Assert.AreEqual('b', charBuffer[1]); Assert.IsNull(dataReader.GetData(0)); Assert.AreEqual(DateTime.Parse("1/1/2019"), dataReader.GetDateTime(5)); Assert.AreEqual(typeof(string).Name, dataReader.GetDataTypeName(0)); Assert.AreEqual(1.23m, dataReader.GetDecimal(6)); Assert.AreEqual(4.56d, dataReader.GetDouble(7)); Assert.AreEqual(typeof(string), dataReader.GetFieldType(0)); Assert.AreEqual(7.89f, dataReader.GetFloat(8)); Assert.AreEqual(Guid.Parse("eca0c8c6-9a2a-4e6c-8599-3561abda13f1"), dataReader.GetGuid(9)); Assert.AreEqual(1, dataReader.GetInt16(10)); Assert.AreEqual(2, dataReader.GetInt32(11)); Assert.AreEqual(3, dataReader.GetInt64(12)); Assert.AreEqual("Boolean", dataReader.GetName(0)); Assert.AreEqual(0, dataReader.GetOrdinal("Boolean")); Assert.AreEqual("true", dataReader.GetString(0)); Assert.AreEqual("true", dataReader.GetValue(0)); var objectBuffer = new object[14]; dataReader.GetValues(objectBuffer); Assert.AreEqual("true", objectBuffer[0]); Assert.AreEqual(DBNull.Value, objectBuffer[13]); Assert.IsTrue(dataReader.IsDBNull(13)); } }
internal static void CheckReferenceData() { // csv... string data = ResourceHelper.GetString("AmxMobile.Services.Resources.Countries.csv"); using (StringReader reader = new StringReader(data)) { CsvDataReader csv = new CsvDataReader(reader, true); // txn... using (TransactionState txn = Database.StartTransaction()) { try { while (csv.Read()) { // get... string name = csv.GetString("Common Name"); if (name == null) throw new InvalidOperationException("'name' is null."); if (name.Length == 0) throw new InvalidOperationException("'name' is zero-length."); // get... Country country = Country.GetByName(name); if (country == null) { country = new Country(); country.Name = name; if (string.Compare(name, "United Kingdom", true, Cultures.System) == 0) country.Ordinal = 1000; if (string.Compare(name, "United States", true, Cultures.System) == 0) country.Ordinal = 1001; else country.Ordinal = 9999; // save... country.SaveChanges(); } } // ok... txn.Commit(); } catch (Exception ex) { txn.Rollback(ex); throw new InvalidOperationException("The operation failed", ex); } } } }
public void ReadWithNoHeaderTest() { var s = new StringBuilder(); s.AppendLine("1,one"); s.AppendLine("2,two"); using (var reader = new StringReader(s.ToString())) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Configuration.HasHeaderRecord = false; csv.Configuration.Delimiter = ","; var dataReader = new CsvDataReader(csv); dataReader.Read(); Assert.AreEqual(1, dataReader.GetInt32(0)); Assert.AreEqual("one", dataReader.GetString(1)); dataReader.Read(); Assert.AreEqual(2, dataReader.GetInt32(0)); Assert.AreEqual("two", dataReader.GetString(1)); } }
private static void Main(string[] args) { using (var textReader = new StreamReader(@".\test.csv")) { var config = new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = false }; var csvReader = new CsvReader(textReader, config); var csvDataReader = new CsvDataReader(csvReader); while (csvDataReader.Read()) { for (int i = 0; i < csvDataReader.FieldCount; i++) { Console.Write(csvDataReader.GetString(i) + " "); } Console.WriteLine(" "); } } Console.Read(); }