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:









Monday, 19 January 2015

Call WCF service method from the C# Library

App.Config of Library

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <client>
            <endpoint address="http://localhost:1157/Service1.svc" binding="basicHttpBinding"
                bindingConfiguration="BasicHttpBinding_IService1" contract="PrcoessService.IService1"
                name="BasicHttpBinding_IService1" />
        </client>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IService1" />
            </basicHttpBinding>
        </bindings>
    </system.serviceModel>
</configuration>



TestWCFSevice.cs

public TestWCFSevice()
{
  int _returnValue=RunServiceMethod(10);
}

Note :Change the end point address and end point name in the below method with your respected information

public int RunServiceMethod(int pValue)
{
 BasicHttpBinding binding = new BasicHttpBinding();
 binding.Name = "BasicHttpBinding_IService1";
 binding.CloseTimeout = System.TimeSpan.Parse("00:01:00");

 binding.OpenTimeout = System.TimeSpan.Parse("00:01:00");
 binding.ReceiveTimeout = System.TimeSpan.Parse("00:10:00");
 binding.SendTimeout = System.TimeSpan.Parse("00:01:00");

 binding.AllowCookies = false;
 binding.BypassProxyOnLocal = false;
 binding.HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.StrongWildcard;

 binding.MaxBufferSize = 65536;
 binding.MaxBufferPoolSize = 524288;
 binding.MaxReceivedMessageSize = 65536;

 binding.MessageEncoding = System.ServiceModel.WSMessageEncoding.Text;
 binding.TextEncoding = System.Text.Encoding.UTF8;
 binding.TransferMode = System.ServiceModel.TransferMode.Buffered;

 binding.UseDefaultWebProxy = true;
 binding.ReaderQuotas.MaxDepth = 32;
 binding.ReaderQuotas.MaxStringContentLength = 8192;

 binding.ReaderQuotas.MaxArrayLength = 16384;
 binding.ReaderQuotas.MaxBytesPerRead = 4096;
 binding.ReaderQuotas.MaxNameTableCharCount = 16384;

 binding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.None;
 binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
 binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;

 binding.Security.Transport.Realm = "";
 binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
 binding.Security.Message.AlgorithmSuite = System.ServiceModel.Security.SecurityAlgorithmSuite.Default;


EndpointAddress endpoint = new EndpointAddress("http://localhost:1157/Service1.svc");// Provide your hosted service Address 
WCFService.Service1Client wcfService = new WCFService.Service1Client(binding, endpoint);

 int _activeValue = wcfService.GetData(pValue); // Call WCF Method
 return _activeValue;
}