วันเสาร์ที่ 23 กุมภาพันธ์ พ.ศ. 2562

C# Auto update program


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace UpdateVersion
{
    public partial class Form1 : Form
    {
        List<string> listFiles = new List<string>();
        double countFiles = 0.0;
        public Form1()
        {
            InitializeComponent();
        }   
        private void Form1_Load(object sender, EventArgs e)
        {         
            backgroundWorker1.RunWorkerAsync();
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            listFiles = CopyFolder("D:\\Datas", "D:\\Backup");
            countFiles = 100.0 / listFiles.Count;

            for(int i=1;i<=listFiles.Count;i++)
            {           
                backgroundWorker1.ReportProgress(i);
                if (i == listFiles.Count)
                    Thread.Sleep(500);
                Thread.Sleep(50);
            }
        }

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBarValue.Value = (int)(countFiles * e.ProgressPercentage);
            this.label1.Text = "Update to "+ listFiles[e.ProgressPercentage-1].ToString();       
        }

        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            this.label1.Text = "Update completed!!!!";
            Thread.Sleep(1000);
          //  Process.Start("D:\\Backup\\UpdateVersion.exe");
            Application.Exit();

        }
        static public List<string> CopyFolder(string sourceFolder, string destFolder)
        {
            List<string> listfile = new List<string>();
            if (!Directory.Exists(destFolder))
                Directory.CreateDirectory(destFolder);
            string[] files = Directory.GetFiles(sourceFolder);
            foreach (string file in files)
            {
                string name = Path.GetFileName(file);
                string dest = Path.Combine(destFolder, name);

                File.Copy(file, dest,true);
                listfile.Add(dest);
            }
            string[] folders = Directory.GetDirectories(sourceFolder);
            foreach (string folder in folders)
            {
                string name = Path.GetFileName(folder);
                string dest = Path.Combine(destFolder, name);
                CopyFolder(folder, dest);
                listfile.Add(dest);
            }
            return listfile;
        }     
    }
}

วันเสาร์ที่ 12 มกราคม พ.ศ. 2562

C# Create Button By programmatically



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        List<string> listRoom;
        List<Index> index;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            listRoom = new List<string>();
            index = new List<Index>();

            for(char c='A';c<='Z';c++)
            {
                listRoom.Add(c.ToString());
            }

            List<Button> buttons = new List<Button>();
            int y = 5;
            int x = 5;
            for (int i = 1; i <= listRoom.Count; i++)
            {
                Button newButton = new Button();
                if (i % 3 != 0)
                {
                    newButton.Location = new Point(2 * x, 2 * y);
                    x += 42;
                 
                }
                else
                {
                    newButton.Location = new Point(2 * x, 2 * y);
                    y += 30;
                    x = 5;
                 
                }
                newButton.Text = listRoom[i-1].ToString();
                newButton.Size = new Size(80, 50);
                newButton.MouseEnter += (s, ee) => newButton.Cursor = Cursors.Hand;
                newButton.MouseLeave += (s, ee) => newButton.Cursor = Cursors.Arrow;
                newButton.BackColor = Color.Green;
                buttons.Add(newButton);
             
                this.Controls.Add(newButton);
                Index ind = new Index();
                ind.index = newButton.TabIndex;
                ind.Room = listRoom[i - 1].ToString();
                index.Add(ind);
                newButton.Click += NewButton_Click;
             
            }
        }
        private void NewButton_Click(object sender, EventArgs e)
        {
            Button b = (Button)sender;
            if (b.BackColor != Color.Red)
            {
                b.Text =  b.Text + " [Disable]";
                b.BackColor = Color.Red;
            }
            else
            {
                foreach (var v in index)
                {
                    if (b.TabIndex == v.index)
                    {
                        b.Text = v.Room;
                        b.BackColor = Color.Green;
                        break;
                    }
                }
            }
        }     
    }
    public class Index
    {
        public int index { get; set; }
        public string Room { get; set; }
    }
}



วันศุกร์ที่ 21 ธันวาคม พ.ศ. 2561

C# Select Data by Lambda (Sql Server)



using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Data.GetDataUser("Kriangkrai.R");         
            Console.WriteLine($"Manager       = {Data.getNameManager()}");
            Console.WriteLine($"Director      = {Data.getNameDirector()}");
            Console.WriteLine($"Administrator = {Data.getNameAdmin()}");

            Console.ReadKey();
        }
    }
    public class Data
    {
        public string Name;
        public string Location;
        public string Department;
        public string Permission;
        public string Groups;
        public static string Manager;
        public static string Director;
        public static string Admin;

        public Data(string Name,string Location, string Department, string Permission,string Groups)
        {
            this.Name = Name;
            this.Location = Location;
            this.Department = Department;
            this.Permission = Permission;
            this.Groups = Groups;
        }

        public static void GetDataUser(string Name)
        {
            List<Data> listData = new List<Data>();
            SqlConnection con = new SqlConnection("Data Source=DESKTOP-BMFLGER\\SA;Initial Catalog=DataUser;User ID = sa; Password = 123456;");
            con.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM [User]", con);
            SqlDataReader dr = cmd.ExecuteReader();

            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    Data d = new Data(dr["Name"].ToString(), dr["LOcation"].ToString(), dr["Department"].ToString(), dr["Permission"].ToString(), dr["Groups"].ToString());
                    listData.Add(d);
                }
                dr.Close();
            }
            con.Close();

            string department = "";
            string Location = "";
            foreach (var v in listData)
            {
                if(Name == v.Name)
                {
                    department = v.Department;
                    Location = v.Location;
                    break;
                }
            }

            //Get Name Manager
            var NameManager = listData.Where(x => x.Department == department && x.Permission == "M").Select(x => x.Name).ToList();
            foreach(var v in NameManager)
            {
                Manager += v.ToString() + ",";
            }
            Manager = Manager.Remove(Manager.Length - 1);



            //Get Name Director
            if (Location == "Bangkok" || Location == "Konkaen")
            {
                var NameDirector = listData.Where(x => x.Permission == "D" && (x.Location == "Bangkok")).Select(x => new DataDirector { Name = x.Name, Location = x.Location }).ToList();
                foreach (var v in NameDirector)
                {
                    Director = v.Name + ",";
                }
                Director = Director.Remove(Director.Length - 1);
            }
            else if(Location == "Rayong")
            {
                var NameDirector = listData.Where(x => x.Permission == "D" && (x.Location == "Rayong")).Select(x => new DataDirector { Name = x.Name, Location = x.Location }).ToList();
                foreach (var v in NameDirector)
                {
                    Director = v.Name + ",";
                }
                Director = Director.Remove(Director.Length - 1);
            }

            //Get Name Admin
            var NameAdmin = listData.Where(x => x.Permission == "Admin").Select(x => x.Name).ToList();
            foreach(var v in NameAdmin)
            {
                Admin += v.ToString() + ",";
            }
            Admin = Admin.Remove(Admin.Length - 1);
        }
        
        public static string getNameManager()
        {
            return Manager;
        }
        public static string getNameDirector()
        {
            return Director;
        }
        public static string getNameAdmin()
        {
            return Admin;
        }
    }

   class DataDirector
    {
        public string Name { get; set; }
        public string Location { get; set; }       
    }
    
}




วันพุธที่ 18 เมษายน พ.ศ. 2561

Random Lot

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> ReadFile = File.ReadAllLines(@"D:\Data.txt").ToList();
            List<string> random = new List<string>();
            Random rnd = new Random();

            Console.Write("Do you want to Number of value : ");
            string number = Console.ReadLine();
            int want = 100- ReadFile.Count -(Int32.Parse(number))-1;
            for (int j = 0; j <100; j++)
            {
                random.Add(j.ToString());
       
            }
            for (int i = 0; i < ReadFile.Count; i++)
            {
                random.Remove(ReadFile[i]);
            }

            for (int j = 0; j < want; j++)
            {
                for (int i = 0; i < 1; i++)
                {
                    int k = rnd.Next(0, random.Count);
                    random.Remove(random[k]);

                }
                int count = 0;
                int row=20;
                foreach (string ii in random)
                {
                    if (Int32.Parse(count.ToString()) % row != 0)
                    {
                        if (Int32.Parse(ii) == Int32.Parse(random.Last()))
                        {
                            if (Int32.Parse(ii) < 10)
                            {
                                Console.Write("0" + ii.ToString());
                            }
                            else
                            {
                                Console.Write(ii.ToString());
                            }
                        }
                        else
                        {
                            if (Int32.Parse(ii) < 10)
                            {
                                Console.Write("0" + ii.ToString() + ",");
                            }
                            else
                            {
                                Console.Write(ii.ToString() + ",");
                            }
                        }                       
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                    count++;
                    Thread.Sleep(10);
                }
                Console.WriteLine("\n");
            }
        }
    }
}

วันศุกร์ที่ 15 ธันวาคม พ.ศ. 2560

C# Search , Add , Delete DataGridView

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        DataTable table;
        DataTable table1;
        public Form1()
        {
            InitializeComponent();
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            var item = dataGridView1.Rows[e.RowIndex].Cells[1].Value;
            table1.Rows.Add(item.ToString());
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            table = new DataTable();
            table.Columns.Add("Id", typeof(int));
            table.Columns.Add("Name", typeof(string));
            table.Rows.Add(1,"Mee");
            table.Rows.Add(2, "Yha");
            dataGridView1.DataSource = table;

            table1 = new DataTable();
            table1.Columns.Add("Name", typeof(string));
            dataGridView2.DataSource = table1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int rowIndex = dataGridView2.CurrentCell.RowIndex;
                dataGridView2.Rows.RemoveAt(rowIndex);
        }

        private void dataGridView2_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyData == Keys.Delete)
            {
                int rowIndex = dataGridView2.CurrentCell.RowIndex;
                    dataGridView2.Rows.RemoveAt(rowIndex);
            }
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar == (char)13)
            {
                DataView dv = table.DefaultView;
                dv.RowFilter = string.Format("Name like '%{0}%'" , textBox1.Text);
                dataGridView1.DataSource = dv.ToTable();
            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            DataView dv = table.DefaultView;
            dv.RowFilter = string.Format("Name like '%{0}%'", textBox1.Text);
            dataGridView1.DataSource = dv.ToTable();
        }
    }
}

วันศุกร์ที่ 24 พฤศจิกายน พ.ศ. 2560

C# Binary Search

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Linkedlist
{
    class Program
    {
        static public int[] numsort(int[] x)
        {
            int[] a = x;

            for (int i = 0; i < a.Length; i++)
            {
                for (int j = 0; j < a.Length - 1; j++)
                {
                    if (a[j] > a[j + 1])
                    {
                        int temp;
                        temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                    }
                }
            }
            return a;
        }
        static public int binarySerach(int[] x,int find)
        {
            int left = 0;
            int right = x.Length-1;
            int mid;
            while(left <= right)
            {
                mid = (left + right) / 2;
                if (find == x[mid])
                    return mid;
                else if (find < x[mid])
                {
                    right = mid - 1;
                }
                else
                    left = mid + 1;
            }
            return -1;
        }
        static public void output(int[] x)
        {
            for(int i=0;i<x.Length;i++)
            {
                Console.Write(x[i]+" ");
            }
            Console.WriteLine();
        }
        static void Main(string[] args)
        {
            Random r = new Random();
            int find = 5;
            int[] x = new int[10];
            for(int i=0;i<10;i++)
            {
                x[i] = r.Next(10) + 1;
            }
            numsort(x);
            output(x);
            int c = binarySerach(x, find);
            Console.WriteLine("Find : " + find + " Index : " + (c+1));
         

            Console.ReadLine();
        }   
    }

}

วันศุกร์ที่ 3 พฤศจิกายน พ.ศ. 2560

C# sequential Search

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LinkedList
{
    public partial class Form1 : Form
    {
        int n = 100;
        int[] a;
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            a = new int[n];
            Random x = new Random();
            textBox1.Text = "";
            for(int i=0;i<n;i++)
            {
                a[i] = x.Next(100) + 1;
                textBox1.Text = textBox1.Text + "[" +i.ToString() + "]"+a[i].ToString() + " , ";
            }
        }

        private int sequentialsearch(int k)
        {
            int i=0;
            while(i<n && a[i] !=k)
            {
                i++;
            }
            if (i < n)
                return i;
            else
                return -1;             
        }
        private void button2_Click(object sender, EventArgs e)
        {
            int k = Convert.ToInt32(textBox2.Text);
            textBox3.Text = sequentialsearch(k).ToString();
        }


    }

}