using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace ConsoleTest
{
class Program
{
static void Main(string[] args)
{
Stopwatch sw1 = new Stopwatch();
sw1.Start();
UseStringBuilderClass();
sw1.Stop();
Console.WriteLine("UseStringBuilderClass " + sw1.ElapsedMilliseconds + " ms.");
Stopwatch sw2 = new Stopwatch();
sw2.Start();
NotUseStringBuilderClass();
sw2.Stop();
Console.WriteLine("NotUseStringBuilderClass " + sw2.ElapsedMilliseconds + " ms.");
Console.ReadKey();
}
static void UseStringBuilderClass()
{
StringBuilder str = new StringBuilder();
for (int i = 0; i < 100000; i++) str.Append(i);
}
static void NotUseStringBuilderClass()
{
string str = "";
for (int i = 0; i < 100000; i++) str += i;
}
}
}
21 August 2015
C# StringBuilder เหนือกว่าต่อ string ธรรมดา
15 November 2013
ล้างข้อมูลใน Textbox ด้วย jQuery
สวัสดีจร้าาาาา วันศุกร์สักทีนะเจ้าพวกมนุษย์เงินเดือนทั้งหลาย หลังจากที่ลุยงานกันมาทั้งสัปดาห์จะว่าเหนื่อยก็เหนื่อย จะว่าสบายก็สบาย ฮ่าๆ สรุปไงว่ะเนี่ย อ่ะๆ เอาเป็นว่าบทความนี้มาลองเล่น jQuery กันดีกว่า
โจทย์ของเราคือทำฟอร์มล็อกอินโดยที่เราจะบอกกับผู้ใช้งานว่ากล่องใหนสำหรับกรอก Username กล่องไหนสำหรับ Password โดยที่ไม่ต้องใช้แท็กตัวอักษรสำหรับบอกให้ User รู้ สรุปง่ายๆก็คือบอกมันใน textbox นั่นแหละครับ แต่เพื่อให้ล้ำขึ้นมาหน่อยเวลา User บังเกิดเกล้าคลิกแล้วจะให้มันล้าง Textbox ด้วย ตามโค๊ดตัวอย่างนี้เลยครับ
ขั้นแรกอย่าลืมเพิ่มโค๊ดสำหรับเรียกใช้ jQuery นะครับ
<head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script> </head>
08 November 2013
ตัวอย่างการใช้งาน Triggers บน SQL Server
ขั้นตอนแรก ผมจะสร้างเทเบิลมาก่อน 2 เทเบิล โดย Table_A คือตัวที่จะทำการเขียน Triggers ฝังไว้ ส่วน Table_B คือเทเบิลผลลัพธ์ โดยภายในจะมีฟิลด์สองฟิลด์เหมือนกันทั้งสองเทเบิลคือ id Type:int (auto run indentity) และ txt Type:nvarchar(50) แต่ความจริงแล้วการทำ Triggers ไม่ได้จำกัดนะครับว่าเทเบิลจะต้องเหมือนกัน
26 October 2013
Triggers ถ้าฉันทำ เธอต้องทำด้วยนะ !
สวัสดีไอ้พวกมนุษย์ ! ในที่สุดแอดมินก็ได้มาเขียนบทความของ Gunghun.com เต็มตัวสักทีนะครับ หลังจากที่วุ่นวายกับการย้ายบทความจาก Gushared.com เพราะว่าโฮสกำลังจะหมดอายุเร็วๆนี้ แอดมินเลยคิดว่าถ้าเราหันมาใช้ Blogger แทน จะได้ไม่ต้องเสียค่าเช่าโฮสแล้วก็ถือโอกาสเปลี่ยนชื่อเว็บซะเลย และสำหรับบทความนี้ก็จะพูดเกี่ยวกับเรื่อง Triggers ว่ามันคืออะไร
Triggers ถ้าจะพูดให้เข้าในง่ายๆ ก็คือการเขียนโปรแกรมฝังไว้ที่เทเบิลเพื่อดักจับเหตุการณ์ (INSERT, UPDATE, DELETE) ที่เกิดขึ้นกับเทเบิลนั้นๆ เพื่อกระทำการใดๆกับเทเบิลเป้าหมายที่ต้องการ ตัวอย่างเหตุการณ์ที่ใช้ Triggers เช่น การจัดเก็บข้อมูลในการซื้อขายผลไม้ ซึ่งจะมีเทเบิลรายการซื้อขาย เทเบิลสรุปยอดและเทเบิลการจัดการสต๊อก ปกติแล้วเมื่อมีการซื้อขาย เราจะต้องอัพเดตข้อมูลสามเทเบิลนี้โดยการเพิ่มข้อมูลเข้าไปทีละเทเบิลๆ ตามรูป
20 October 2013
ปุ่ม 3D บนเว็บไซต์ !
ถ้าพูดถึงความประทับใจในการเข้าเว็บไซต์ เว็บไซต์แบบไหนล่ะที่คุณเข้าแล้วคุณรู้สึกว่า เห้ย ! แมร่งเจ๋งหว่ะ ถ้าสำหรับผมแล้วเว็บไซต์ที่จะทำให้ผมประทับใจได้จะต้อง ดูสะอาดตา ใช้งานง่ายแบบว่าใครเข้ามาก็ใช้งานเป็นเลย มีความแปลกประหลาดแหวกแนวไปจากเว็บไซต์เดิมๆที่เคยใช้
ผมได้ลองเข้าไปเว็บไซต์ cssdeck.com ไปเจอตัวอย่างการทำปุ่มแบบ 3D ของคุณ simonpicos เห้ย! แมร่งแนวว่ะ ก็เลยเอามาลองทำดูบ้าง ตามด้านล่างนี้เลยครับ (ลองคลิกปุ่มดูนะครับ >.<)
Memory Address กับเรื่องลิสต์ๆ
ถ้าเปรียบหน่วยความจำให้เข้าใจง่ายๆ ก็คงต้องเปรียบเหมือนห้องเก็บของที่มีทั้งขนาดและหมายเลขห้องเพราะเวลาที่เราจะให้ใครไปหยิบของจากห้องเก็บของ เราจะได้บอกเค้าถูกว่าจะต้องไปหยิบจากห้องไหนหรือเวลาที่จะเอาของไปเก็บ ถ้ามีของเยอะๆจะต้องใช้ห้องเก็บกี่ห้องและเลขห้องไหนบ้าง
หน่วยความจำ สิ่งที่คนเขียนโปรแกรมมือใหม่มักจะละเลยและไม่คำนึงถึง แต่สำหรับการเขียนโปรแกรมแล้วเป็นสิ่งที่จะลืมไม่ได้เพราะการเขียนโปรแกรมบางรูปแบบค่อนข้างที่จะต้องคำนึงถึงเรื่องการใช้งานหน่วยความจำ ตัวอย่างเช่น
//Programming Language : C# Lista = new List (){1, 2, 3}; List b = a; b.RemoveAt(0); //Remove data index 0. //Result a = 2, 3 b = 2, 3
18 October 2013
จับข้อมูลยัดใส่ Stored Procedures
สวัสดีครับ ครั้งที่แล้วผมได้เสนอบทความเกี่ยวกับตัวอย่างการใช้งาน Stored Procedures ไปแล้วนะครับ ซึ่งจะแสดงให้เห็นเกี่ยวกับการสร้าง การเรียกใช้ Stored Procedures แบบง๊ายยยยยยยย ฝุดๆ เล๊ยยยย
แต่มาบทความนี้จะเป็นตัวอย่างในการส่งข้อมูลไปยัง Stored Procedures เพื่ออะไรบางอย่าง เช่น เพิ่มข้อมูลลงดาต้าเบสหรืออาจจะเป็นการประมวลผลอื่นๆ และตัวอย่างนี้ก็คือการส่งข้อมูลเพื่อทำการเพิ่มข้อมูลลงดาต้าเบส โดยแบ่งเป็น 2 ส่วน ดังนี้
17 October 2013
สิ่งเล็กๆ ที่เรียกว่า Stored Procedures
ช่วงหลังๆถ้าใครได้ติดตามเราจะเห็นว่าผมได้พูดเกี่ยวกับ Stored Procedures แต่มาคราวนี้เราจะมาลองใช้งานมันดู โดยหลักๆผมจะแบ่งเป็นสองส่วน ส่วนแรกจะเป็นการสร้าง Stored Procedures ใน SQL Server และส่วนที่สองจะเป็นส่วนของตัวอย่างการเรียกใช้งาน
ส่วนที่ 1 : การสร้าง Stored Procedures หลังจากที่เราเข้าโปรแกรม SQL Server เรียบร้อยแล้ว คลิกขวาที่ดาต้าเบส -> Programmability -> Stored Procedures -> New Stored Procedure...
[C#] เซ็ตปุ่ม Enter เพื่อคลิก Button
บทความนี้เป็นบทความที่ค่อนข้างจะสั้น เพราะไม่มีอะไรมากมาย แค่ให้รู้ว่าถ้าเราสร้าง Button ขึ้นมาบน Windows Forms Application แล้วต้องการให้กดปุ่ม Enter บนคีย์บอร์ดแทนการคลิกบน Button มันต้องทำยังไง อย่ารอช้าเริ่มกันเลยดีกว่า!
[C#]จับเวลาการทำงานของโปรแกรม
"เวลา" สิ่งเล็กๆที่บางครั้งเราอาจจะมองข้ามไป เวลาเขียนโปรแกรมแอดมินเองก็ไม่ค่อยจะสนใจหรอกครับว่าโปรแกรมมันจะใช้เวลาทำงานเท่าไหร่ จนเมื่อมาทำงานเนี่ยแหละครับ Requirement ต้องการให้โปรแกรมต้องทำงานเสร็จภายใน 2 นาที *o* ว๊ากกกก จะทำไงเนี่ย! ไอ้โปรแกรมเราก็คำนวณเยอะซะเหลือเกิน สุดท้ายแล้วแอดมินก็ต้องทำจับเวลาดูทีละส่วน ว่าส่วนไหนมันใช้เวลาเยอะเป็นพิเศษ แล้วค่อยปรับอัลกอริทึมใหม่ แต่ประเด็นคือ เราจะจับเวลาเป็นส่วนๆ ยังไงหล่ะ ? เนี่ยแหละครับที่แอดมินอยากบอก
Stopwatch หลายคนอาจจะรู้จักแล้ว หลายคนไม่เคยคิดจะใช้มัน Stopwatch เป็นคลาสที่ติดมากับ .NET Framework อยู่แล้วเหลือแค่รอให้เราเรียกใช้มัน โดยหลักๆแล้ว เราจะใช้แค่เริ่มนับเวลา หยุด แล้วก็ดูเวลาที่นับได้ แอดมินก็จะแสดงตัวอย่างแค่นี้แหละ หึหึ
using System.Diagnostics; // อย่าลืม ! Stopwatch sw = new Stopwatch(); //ทำการเรียกใช้คลาส Stopwatch sw.Start(); //เริ่มนับเวลา sw.Stop(); //หยุดนับเวลา sw.Elapsed; //เรียกดูค่าเวลาที่นับ รูปแบบ TimeSpan(Hours:Minutes:Seconds.Milliseconds)
16 October 2013
[C#] Return หลายค่าใน Method เดียว
หลายๆคนที่เขียนโปรแกรม อาจจะเคยต้องการให้เมธอด return ค่ากลับมาให้เรามากกว่าหนึ่งค่าจากเมธอดเดียว บางคนอาจจะเคยใช้ out แล้ว แต่บางคนอาจจะยังไม่รู้จัก เอาแบบไม่อ้างหลักการอะไรมากมายนะครับ เหตุผลที่ผมจะใช้ out ก็ต่อเมื่อต้องการให้เมธอดนั้น return ค่ากลับมามากกว่าหนึ่งค่าโดยที่ไม่ต้องใช้ object หรือ struct โดยสามารถศึกษาได้ตามตัวอย่างโค๊ดง่ายๆด้านล่างนี้ครับ
15 October 2013
Google Map API : สร้าง Marker บน Google Map
หลังจากที่ได้ลองนำ Google Map มาใส่ในเว็บไซต์ของเราแล้ว ครั้งนี้เราจะลองนำ Marker มาปักบน Google Map ของเรามั่งครับ ซึ่งตัวอย่างที่ผมจะนำมาแสดงให้ดู จะค่อนข้างครอบคุมและสามารถนำไปประยุกต์ใช้ต่อได้ วิธีการใช้ก็ไม่ยากแค่เพิ่มโค๊ดมาสามสี่บรรทัด เป็นโค๊ดสำหรับสร้าง Marker แล้วเราก็ใช้เมธอด setMap() เรียกมาแสดงได้เลย
Basic Maker
<script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAu08o0WD6buv6P6bu--XFyo2KrIScQgrg&sensor=false"></script>
<script>
function loadmap()
{
var mapSet = {
center:new google.maps.LatLng(13.727896,100.524124),
zoom:7,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapSet);
//Create marker object
var marker=new google.maps.Marker({
position:new google.maps.LatLng(13.727896,100.524124),
});
//Set marker to google map
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', loadmap);
</script>
<div id="googleMap" style="width:500px;height:400px;"></div>
Google Map API : การใช้ Google Map อย่างง่าย
เมื่อครั้งที่แล้วเราได้ทำการขอ API Key สำหรับ Google Map เป็นที่เรียบร้อย ครั้งนี้เราจะลองนำ Google Map มาใส่ในเว็บเรากันครับ
ขั้นที่ 1 : เพิ่มแท็ก Script เพื่อเรียกใช้ Google Maps API
<script src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE"></script>ในส่วน Key เป็น API Key ที่เราขอไปเมื่อบทความที่แล้ว และส่วน Sensor เป็นส่วนที่จำเป็นต้องใส่ ส่วนใหญ่จะใช้เกี่ยวกับพวก GPS ถ้าหากเป็นธรรมดาแบบไม่อะไรมากก็ใส่เป็น false ไปเลยครับ
ขั้นที่ 2 : ทำการ Set Property ของแผนที่ที่เราต้องการโดยรายละเอียดหลักๆมีดังนี้
Google Map API : ขอ API key จาก Google
ช่วงนี้เราก็จะมาเรียนรู้เกี่ยวกับ Google Map กันครับ ว่าเราจะเอามันมาใส่ในเว็บเราได้ยังไงและมีอะไรให้ใส่ได้บ้าง แต่ก่อนที่จะไปถึงส่วนนั้นเราก็ต้องขอ API Key จาก Google เสียก่อน
ขั้นที่ 1 : เข้าไปที่ https://code.google.com/apis/console/ แล้วก็ล็อกอินด้วย Google Account ของคุณ จากนั้นคลิกปุ่ม Create Project
[C#] ตรวจสอบ Latitude และ Longitude ง่ายๆจากชื่อสถานที่
สวัสดีครับเพื่อนๆผู้ติดตาม Gunghun.com ทั้งหลาย(บางวันก็ 1 คน บางวันก็ 2 คน ^_^) ห่างหายจากการอัพเดตไปนาน ช่วงนี้ไปเป็นช่วงที่ผมกำลังเริ่มงานโปรแกรมเมอร์ที่ผมใฝ่ฝันหลังจากเรียนจบมาหมาดๆ เลยไม่ค่อยมีเวลาว่าง แต่ตอนนี้ก็มีเวลาว่างสักชั่วโมงสองชั่วโมง ว่าจะมาลองเขียน Console Application ไว้เรียกดู Latitude กับ Longitude สักหน่อยเผื่อต้องใช้ เอาแบบคร่าวๆไปก่อนนะครับเวลาน้อย ^_^
ขั้นที่ 1 : สร้าง Console Application
14 October 2013
Python (ตอน 8) : เขียนไพทอนให้ง่ายขึ้นด้วย PyDev
กลับมาแล้วผมกลับมาแล้วคร๊าบบบ กลับมาครั้งนี้ผมจะมาแนะนำ IDE ของไพทอนเพื่อให้การเขียนโปรแกรมของท่านผู้อ่านง่ายและสะดวกสบายขึ้นและสิ่งที่ผมจะแนะนำในวันนี้ก็คือ PyDev ซึ่งเป็น IDE ของ Eclipse นั่นเอง
ขั้นตอนที่ 1 ให้เราเปิดโปรแกรม Eclipse ขึ้นมาครับ แต่ถ้าใครยังไม่มีก็ไปดาวน์โหลดมาลงได้ที่ Eclipse
Python (ตอน 7) : คลาสและเมธอด อย่างง่าย
สวัสดีครับชาวคณะ ในที่สุดเราก็เดินทางมาถึงตอนที่ 7 จนได้ สำหรับบทความ Python คราวนี้เรามาลองเขียนคลาส(class) กับเมธอด(method) โดยตัวอย่างแรกผมจะลองเขียนคลาสกับเมธอดและการเรียกใช้เมธอด ถ้าพร้อมแล้วไปลุยกันเล๊ยยยย !
class class1:
#Create method
def multiple(a,b):
return a*b
def printTxt():
return "Python by Gushared.com"
#Call method
result = multiple(3,5)
print("Multiple 3*5 :", result)
print(printTxt())
Python (ตอน 6) : อาร์เรย์ (Array)
มาตามสัญญาครับสำหรับ Python ตอน 6 แหม่ ! มาเป็นละครเลยนะครับ ครั้งนี้เราจะมาดูเนื้อหาการเขียนอาร์เรย์(Array)สำหรับไพทอนกันนะครับ ซึ่งการเขียนจะไม่ยุ่งยากแต่อาจจะแปลกตากว่าภาษาอื่นไปนิด ก็อย่างที่ว่านะครับเขียนๆไปเถอะเดี๋ยวไพทอนมันก็รู้เองแหละว่าเขียนอะไร ^_^
13 October 2013
Python (ตอน 5) : คำสั่งควบคุม
สวัสดียามค่ำกับ Python ครับ หลายๆคนอาจจะพอได้ยินข่าวเรื่องการโจมตีแพลตฟอร์มจาวากันมาบ้างแล้ว ไม่ว่าจะเป็นเฟสบุ๊ค, ทวิตเตอร์, แอปเปิ้ล ไม่เว้นแม้กระทั่งไมโครซอฟท์ก็โดนไปตามๆกัน เวลานี้จึงเป็นช่วงเวลาที่ภาษาอื่นๆจะได้โผล่ขึ้นมาอวดโลกจริงๆจังๆ อย่างเช่น Python ที่ผมเขียนมา 3-4 บทความนี่เอง สำหรับบทความนี้ผมก็จะมาแสดงตัวอย่างเกี่ยวกับคำสั่งควบคุมต่างๆของ Python ครับ
Python (ตอน 4) : รับข้อมูลทางคีย์บอร์ด
บทเรียน Python ครั้งนี้มาซะดึกเลยนะครับ แต่หลายๆคนก็อาจจะยังไม่ได้นอนหรือถ้าใครนอนแล้วตื่นเช้ามาก็คงจะได้อ่านแหละครับ ครั้งนี้ผมจะมาแบ่งปันความรู้เรื่องการรับข้อมูลผ่านทางคีย์บอร์ดของภาษาไพทอน ซึ่งก็ยังเป็นอะไรที่ยังเบาๆสมองอยู่แต่มีหลายครั้งที่เราจำเป็นต้องใช้ในการเขียนโปรแกรม โดยการรับค่าจากคีย์บอร์ดนั้นไม่ได้ยากอะไรเลย ดูตามโค๊ดด้านล่างนี้ก็น่าจะเข้าใจครับ













