Wednesday, 28 December 2016

Read CSV data using ODBC Connection

Text File:


The File should be in ANSI format as shown below:


Code:

 class Student
    {
        public string CollegeId { get; set; }
        public string AdmissionDate { get; set; }
        public string CandidateId { get; set; }
        public string MobileNum { get; set; }
    }

private void btnTest_Click(object sender, RoutedEventArgs e)
{
      string fileName = @"CSVData.csv"; 
      //Create a ODBC TEXT File connection
      string connectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};defaultdir=tempFolder;driverid=27;extensions=csv;fil=text;maxbuffersize=2048;pagetimeout=5".Replace("tempFolder", @"C:\Personal\TrialApps\");
            
string query = string.Format("SELECT * FROM `{0}`", fileName);
List<Student> lstStudentInfo = new List<Student>();
using (var odbcConnection = new OdbcConnection(connectionString))
{
    odbcConnection.Open();
    using (var odbcCommand = new OdbcCommand(query, odbcConnection))
    {
          var dataReader = odbcCommand.ExecuteReader(CommandBehavior.CloseConnection);
          while (dataReader.Read())
          {
              string college_id=dataReader["COLLEGE_ID"].ToString();
              string admission_date = dataReader["ADMISSION_DATE"].ToString();
              string candidate_id = dataReader["CANDIDATE_ID"].ToString();
              string mobile_num = dataReader["MOBILE_NUM"].ToString();
              lstStudentInfo.Add(new Student() { CollegeId=college_id,AdmissionDate=admission_date,CandidateId=candidate_id,MobileNum=mobile_num});
             }
       }
 }
            dtGridCSVData.ItemsSource = lstStudentInfo; 
}
Xaml Code for Datagrid:

<DataGrid x:Name="dtGridCSVData" HorizontalAlignment="Left" Margin="10,40,0,0" VerticalAlignment="Top" Height="182" Width="793" CanUserAddRows="False">
            <DataGrid.Columns>
                <DataGridTextColumn x:Name="cCollegeID" Binding="{Binding CollegeId}" Header="College_ID" />
                <DataGridTextColumn x:Name="cAdmissionDate" Binding="{Binding AdmissionDate}" Header="Admission_Date" />
                <DataGridTextColumn x:Name="cCandidateId" Binding="{Binding CandidateId}" Header="Candidate_Id" />
                <DataGridTextColumn x:Name="cMobileNum" Binding="{Binding MobileNum}" Header="Mobile_Num" />
            </DataGrid.Columns>
        </DataGrid>

Output:









No comments:

Post a Comment