Wednesday, August 24, 2011

Pad a string with zeros on the left/right in C# until completing n digits


Very simple way to pad with zeros until completing n digits
           
strMyString.PadLeft(n,'0');

Sample
string strMyString = "1234";
strMyString = strMyString.PadLeft(7,'0');


...will display "0001234"

Other notes: there is a .PadRight() function too.

Kill an Excel process in C#


foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcessesByName("EXCEL"))
        {
            if (process.MainModule.ModuleName.ToUpper().Equals("EXCEL.EXE"))
            {
                process.Kill();
                break;
            }
        }

Friday, August 19, 2011

Union of two dataTables and eliminate duplicates by using a customized IEqualityComparer


 public class StudentDataRowComparer : IEqualityComparer
    {

        #region IEqualityComparer Members

        public bool Equals(DataRow x, DataRow y)
        {
            return (x.Field("STUDENTID") == y.Field("STUDENTID"));
        }

        public int GetHashCode(DataRow obj)
        {
            return obj.ToString().GetHashCode();
        }

        #endregion
    }
 

How to call it
...
        //---Make an Union of both tables
        IEnumerable bothTables = dt1.AsEnumerable().Union(dt2.AsEnumerable());
                                DataTable dtUnion = bothTables.CopyToDataTable();

        //---Remove Duplicates
        var distinctStudents = dtUnion.AsEnumerable().Distinct( new StudentDataRowComparer());
                                DataTable dtFinal = distinctStudents.CopyToDataTable();