วันเสาร์ที่ 30 มิถุนายน พ.ศ. 2561

Unit Test


สวัสดีครับวันนี้เนื่องจากได้ทดลองใช้ Unit Test ของ .Net มาจึงอยากมาแชร์วิธีการใช้งาน แต่ก่อนจะแชร์ ผมขออธิบายก่อนว่า Unit Test คืออะไร

Unit Test คืออะไร?
Unit Test คือ การ test ส่วนของ Code เพื่อทดสอบว่าฟังค์ชัน หรือ Method ที่เราเขียนทำงานถูกต้องตามที่เราต้องการเพื่อช่วยให้สามารถลดบัคสำคัญๆ และลดเวลาในการ Manual test นั่นเอง ยกตัวอย่างเช่น

ถ้าเราเขียนโปรแกรมคำรวณเกรดโดยต้องการส่งคะแนนเป็นตัวเลขแล้วต้องการรู้ว่าเราได้เกรดอะไรเช่นเกรด A, เกรดฺB, เกรดC, เกรดD, เกรดF ดังนี้ครับ


static public string cal(double score)
        {
              if(score > 80){
                    return "A";
                }
                else if(score > 70){
                    return "B";
                }
                else if(score > 60){
                    return "C";
                }
                else if(score > 40){
                    return "D";
                }
                return "F";
        }

ซึ่่งผมหวังถ้าใส่ค่าคะแนน 10 ตัว method ที่ชื่อว่า Cal จะต้อง return เป็นเกรด "F"

 งั้นมาลองเขียน Code เลยดีกว่าครับ เพื่อความเข้าใจผมจะลงเป็น วีดีโอเลยละกันครับ เพื่อบอกการใช้งานไปด้วยเลย








วันอาทิตย์ที่ 17 มิถุนายน พ.ศ. 2561

SQL BULKCOPY


สวัสดีครับวันนี้จะมาแชร์เรื่อง SQL BULKCOPY
แล้ว SQL BULKCOPY คืออะไร?
SQL BULKCOPY คือเป็นส่วนของ SQL Server ที่ช่วยในการ Copy ข้อมูลขนาดใหญ่ลงตารางได้รวดเร็วมากขึ้น ซึ่งถ้าเป็นเมื่อก่อนในการจะ Copy ข้อมูลขนาดใหญ่ลงตารางแต่ละครั้งนั้นเราจะเขียน Code ให้ทำการอ่านข้อมูลแล้วค่อย Insert ทีละ ROW เองจนกว่าจะครบทุก ROW แต่การ Insert ทีละ ROW เองด้วยข้อมูลขนาดใหญ่นั้นก็ส่งผลความล่าช้าในการ Insert เช่นกัน ทาง SQL Server จึงมีตัวช่วยในการ Copy ข้อมูลขนาดใหญ่นี้ที่ชื่อว่า BulkCopy มาใช้งาน


ซึ่งวิธีใช้งานสามารถดูได้ตามตัวอย่างนี้ครับ
จากตัวอย่างด้านล่างเป็นตัวอย่างการนำข้อมูลใน class DataTable มา Copy ใส่ในตารางของ SQL Server

using System.Data.SqlClient;
public bool insertBulkCopy(string tableName, DataTable dataTable)
   {
                using (SqlBulkCopy bc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.TableLock))
    {
                    bool isSuccess = false;
                    try
      {
           bc.DestinationTableName = tableName;
           bc.BatchSize = dataTable.Rows.Count;
           bc.BulkCopyTimeout = this.timeout_command;
                    bc.WriteToServer(dataTable);
           isSuccess = true;
      }
                    catch (SqlException ex)
      {
                       
      }
                    finally
              {
                       
      }
                    return isSuccess;
                   
    }
   }

หรือสามารถศึกษาเพิ่มเดิมได้ที่ https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/bulk-copy-operations-in-sql-server

ผมหวังว่าแชร์นี้จะมีประโยชน์นะครับ ขอบคุณครับ