using Dapper;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Threading.Tasks;
using System.IO;
namespace writingCSV
{
class Program
{
static async Task Main(string[] args)
{
var PatientEmails = await GetPatients();
Type myType = PatientEmails.GetType();
Console.WriteLine(myType);
}
public class PatientSurvey: IDisposable
{
public string Location { get; set; }
public string Email { get; set; }
public void Dispose()
{
throw new NotImplementedException();
}
}
static public async Task<IEnumerable<PatientSurvey>> GetPatients()
{
var connectionString = "SERVER INFORMATION";
using (var cnn = new SqlConnection(connectionString))
{
cnn.Open();
var patientSurveys = await cnn.QueryAsync<PatientSurvey>("STORED PROC NAME",
null,
commandTimeout: 120,
commandType: CommandType.StoredProcedure);
return patientSurveys;
}
}
}
}
I’m attempting to write data to a CSV file from a database. I’ve successfully connected to the db and extracted the data into a C# object, but I cannot figure out how to modify my data so I can actually write it into the file. The PatientEmails variable has the data within it, but it seems like it’s just an instance of the PatientSurvey class.
If I run my variable through a foreach loop, it prints out writingCSV.Program.PatientSurvey for each time it loops.
>Solution :
I dont see any problem …. GetPatients return an IEnumerable of PatientSurvey so indeed looping on the list just print out writingCSV.Program.PatientSurvey.
What would you expect ?
If your goal is to print patients email then you should write something like
foreach (var p in patientEmails) {
Console.WriteLine(p.Email);
}