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

C# เขียนโปรแกรมให้ TextBox รับแต่ภาษาอังกฤษเท่านั่น



เพื่อนๆ หลายคนคงเคยเขียนโปรแกรมที่จะต้องมีข้อจำกัดว่าให้ TextBox รับ้อมูลได้แต่ตัวเลขเท่านั่น หรือว่าได้แต่ภาษาอังกฤษเท่านั่น วันนี้เราจะมาดูกันครับว่ามีขั้นตอนและวิธีการเขียนยังไง ก่อนอื่นเลยก่อนเราจะเขียนโปรแกรมเราต้องรู้เกี่ยวกับ ASCII กันก่อนครับ ถ้าใครรู้แล้วก็ข้ามไปเลย แต่ถ้าังไม่รู้ก็อ่านสักนิดครับ

โดยปกติแล้วการที่เราจะแสดงตัวอักษา A ได้นั่นเราจะต้องส่งค่าตัวเลขที่เป็น Dec หรือเลขฐานสิบที่มีค่า 65 ไปให้กับคอมพิวเตอร์เพื่อสั่งให้มันแสดงผลตัวอักษา A ออกมา (ตัวอย่างในกรอบสีเขียวในรูปด้านล่าง) ดังนั่นถ้าเราต้องการเฉพาะตัวเลขเราก็ต้องสร้างเงื่อนไขว่า ค่าตัวอักษรจะต้องอยู่ระหว่าง 48 และ 57 แล้วถ้าเราจะเอาเฉพาะตัวอักษรภาษาอังกฤษค่าตัวอักษรก็ต้องอยู่ระหว่าง 65 และ 122 เป็นต้น เมื่อรู้คอลเซ็ปแล้วเราก็ไปเริ่มเขียนโปรแกรมกันเลยครับ


ก่อนอื่นเลยก็สร้างโปรเจ็คก่อนเลยครับ


จากนั่นก็วาง Control ลงใน Form แบบนี้


จากนั่นเราก็เพิ่มโค็ดเข้าไปตามนี้


จากนั่นลองทดสอบโปรแกรมนะครับ

วันพฤหัสบดีที่ 20 ธันวาคม พ.ศ. 2555

การใช้ Timer แสดงวัน:ชั่วโมง:นาที:วินาที แบบนับถอยหลัง


1. วาง Timer ในฟอร์ม กำหนด Interval: 1000 และ Enabled: True
2. double-click บน Timer1 เขียนโค้ดใน Timer1_Tick ตามตัวอย่างนี้
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
 If (Now >= #2/14/2008#) Then
     Timer1.Enabled = False ' --- no more ticks.
     Me.Text = "Happy Valentine Day!"
 Else
     Dim sb As New System.Text.StringBuilder()
     Dim ts As TimeSpan = #2/14/2008# - Now
     If (ts.Days > 0) Then sb.AppendFormat("{0} วัน ", ts.Days)
     If (ts.Hours > 0) Then sb.AppendFormat("{0} ช.ม. ", ts.Hours)
     If (ts.Minutes > 0) Then sb.AppendFormat("{0} นาที ", ts.Minutes)
     If (ts.Seconds > 0) Then sb.AppendFormat("{0} วินาที ", ts.Seconds)
     Me.Text = sb.ToString()
 End If
End Sub

วันพุธที่ 19 ธันวาคม พ.ศ. 2555

คำสั่ง SQL ALTER TABLE


คำสั่ง SQL ALTER TABLE

เป็นคำสั่งที่ใช้สำหรับการปรับแก้ไขคุณสมบัติของตาราง เช่น เพิ่ม / ลบ / แก้ไข จำนวน Coulmn

รูปแบบของคำสั่ง SQL ALTER TABLE

ในการเพิ่มคอลัมน์ในตาราง
ALTER TABLE table_name
ADD column_name datatype
ในการลบคอลัมภ์ในตาราง
ALTER TABLE table_name
DROP COLUMN column_name
ในการเปลี่ยน Data typeของคอลัมน์ในตาราง
ALTER TABLE table_name
ALTER COLUMN column_name datatype

ตัวอย่างการใช้คำสั่ง SQL ALTER TABLE

ตาราง Persons
P_IdLastNameFirstNameAddressCity
1HensenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersonKariStorgt 20Stavanger
ใช้คำสั่ง
ALTER TABLE Persons
ADD DateOfBirth date
ได้ผลลัพธ์ดังนี้
P_IdLastNameFirstNameAddressCityDateOfBirth
1HensenOlaTimoteivn 10Sandnes 
2SvendsonToveBorgvn 23Sandnes 
3PettersonKariStorgt 20Stavanger

วันอังคารที่ 18 ธันวาคม พ.ศ. 2555

การใช้ JOIN ใน SQL


การใช้ JOIN ใน SQL

การทำ JOIN ใน SQL คือการนำตาราง 2 ตารางมารวมกัน โดยเงื่อนไขการรวมจะมีดังนี้

  • INNER JOIN เลือกเฉพาะข้อมูลที่มี key ตรงกันเท่านั้นมาแสดง
  • OUTER JOIN นำข้อมูลทั้งหมดมาแสดงแม้ว่า key ไม่ตรงกัน
  • LEFT JOIN ทำการ JOIN ข้อมูลกับตารางที่อยู่ทางซ้าย
  • RIGHT JOIN ทำการ JOIN ข้อมูลกับตารางที่อยู่ทางขวา
ไวยากรณ์ของการ JOIN มีดังนี้
SELECT columns_list 
FROM left_table  { INNER | OUTER | LEFT | RIGHT } JOIN right_table 
     ON  join_condition
WHERE select_condition
ตัวอย่าง กำหนดให้ตาราง A และ B มีข้อมูลดังนี้
TABLE_A
------------------------
id    Name
------------------------
1     John
2     Susan
3     Tony

TABLE_B
------------------------
id    Salary
------------------------
1     23,000
2     12,000
5     32,100
ตัวอย่าง SQL Statement:
SELECT * 
FROM  TABLE_A INNER JOIN TABLE_B 
   ON  TABLE_A.id = TABLE_B.id
ผลการการ JOIN แต่ละแบบจะได้ผลดังนี้:
INNER JOIN: ผลที่ได้จะเห็นว่าข้อมูลที่ไม่ตรงทั้งใน TABLE_A และ TABLE_B จะไม่แสดง
------------------------
id   Name    Salary
------------------------
1    John     23,000
2    Susan   12,000


OUTER JOIN: จะได้ข้อมูลทั้งหมด เท่าที่จะแสดงได้ เช่น ใน TABLE_A มีข้อมูลของ Tony แต่ TABLE_B ไม่มีข้อมูลของ Tony (id 3) ดังนั้นข้อมูลที่ได้ จะมีข้อมูลของ Tony แสดงแต่ไม่มีข้อมูลเงินเดือนของ Tony
------------------------
id   Name    Salary
------------------------
1    John     23,000
2    Susan   12,000
3    Tony
5               32,100
LEFT JOIN: ข้อมูลที่ได้จะยึดข้อมูลในตารางทางซ้ายเป็นหลัก ในที่นี้ให้ TABLE_A เป็น TABLE ด้านซ้าย จะเห็นได้จากข้อมูลใน TABLE_A ซึ่งมีรายชื่อของ John, Susan และ Tony ผลที่ได้ก็จะแสดงข้อมูลของพนักงานทั้ง 3 คน แต่ข้อมูลของ Tony จะไม่มีเงินเดือนแสดง เนื่องจากไม่มีข้อมูลของ Tony อยู่ในตาราง TABLE_B
------------------------
id   Name    Salary
------------------------
1    John     23,000
2    Susan   12,000
3    Tony


RIGHT JOIN: หลักการจะเหมือนกับ LEFT JOIN แต่จะต่างกันตรงที่ข้อมูลที่ได้จะยึดเอาข้อมูลในตารางด้ายขวาเป็นหลัก
------------------------
id   Name    Salary
------------------------
1    John     23,000
2    Susan   12,000
5               32,100


เพิ่มเติม
ในกรณีที่ต้องการ Join ข้อมูลตั้งแต่ 3 table ขึ้นไป ให้เลือก Table ขึ้นมาสองอันแล้ว Join กันก่อน จากนั้นจึงค่อย Join กับ Table ที่เหลือ เช่น
SELECT Table1.id, Table2.salary, Table3.position
FROM (Table1 INNER JOIN Table2 ON Table1.id = Table2.id) 
    INNER JOIN Table3 ON Table1.id = Table3.id;

วันจันทร์ที่ 10 ธันวาคม พ.ศ. 2555

ASP.NET GridView Control - DataBind

(C#) ASP.NET GridView Control - DataBind เป็นรูปแบบการใช้ GridView แบบง่าย ๆ โดยเพียงแค่ส่ง DataSourceหลังจากนั้นจะให้ GridView ทำการ Binddata อัตโนมัติ

Language Code : C#

Framework : 2,3,4

Syntax

myGridView.DataSource = [DataReader,DataSet,DataTable]
myGridView.DataBind()


GridViewDataBind.aspx


<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%>
<%@ Page Language="C#" Debug="true" %>
<script runat="server">
OleDbConnection objConn;
OleDbCommand objCmd;

    void Page_Load(object sender,EventArgs e)
{
String strConnString;
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
Server.MapPath("database/mydatabase.mdb") + ";";
objConn = new OleDbConnection(strConnString);
objConn.Open();

BindData();
    }

void BindData()
{
String strSQL;
strSQL = "SELECT * FROM customer";

OleDbDataReader dtReader;
objCmd = new OleDbCommand(strSQL, objConn);
dtReader = objCmd.ExecuteReader();

//*** BindData to GridView ***//
myGridView.DataSource = dtReader;
myGridView.DataBind();

dtReader.Close();
dtReader = null;
}

void Page_UnLoad()
{
objConn.Close();
objConn = null;
}
</script>
<html>
<head>
<title>ThaiCreate.Com ASP.NET - GridView</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView id="myGridView" runat="server"></asp:GridView>
</form>
</body>
</html>


จากบทความที่แล้ว ASP.net การใช้ GridView ครั้งนี้เรามาใช้ SqlDataReader กับ GridView กันบ้างโดยก่อนที่จะสามารถใช้ SqlDataReader ได้นั้นเราก็ต้องทำการเปิด Connection แล้วคำสั่งที่ใช้สำหรับดึงข้อมูลซะก่อนซึ่งข้อมูลในฐานข้อมูลนั้น ผมใช้เป็นข้อมูลตัวอย่าง Northwind เรามาเริ่มกันเลยดีกว่า
ขั้นแรกผมทำการสร้างไฟล์ WebForm โดยตั้งชื่อว่า Query.aspx ดังรูป
สอนเขียน c# gridview
ต่อจากนั้นทำการเปิดไฟล์ Query.cs เพื่อทำการเขียนโค้ด โดยจำเป็นต้องมีการใช้ library สำหรับเชื่อมต่อฐานข้อมูล SQLServer โดยใช้คำสั่ง
1.using System.Data;
2.using System.Data.SqlClient;
หลังจากนั้นก็กลับไปที่ไฟล์ webpage คือ Query.aspx เพื่อทำการสร้าง GridView โดยให้เอาเมาส์ลาก GridView จาก ToolBar ในส่วนของ Data
ASP.net การใช้ GridView
เมื่อสร้าง GridView เสร็จแล้วให้ทำการแก้ไข ID ของ GridView เป็น grid
ASP.net การใช้ GridView

หลังจากก็ทำการเขียนโค้ดในส่วนของการเชื่อมต่อฐานข้อมูลแล้งดึงข้อมูล ซึ่งมีโค้ดดังนี้
ต่อจากนั้นทำการเปิดไฟล์ Query.cs เพื่อทำการเขียนโค้ด โดยจำเป็นต้องมีการใช้ library สำหรับเชื่อมต่อฐานข้อมูล SQLServer โดยใช้คำสั่ง
01.SqlConnection conn = new SqlConnection(@"server=.\sqlexpress;integrated security=true;database=northwind");
02.conn.Open();
03. 
04.string sqlString = "SELECT ProductID, ProductName, QuantityPerUnit, UnitPrice FROM Products";
05.SqlCommand comm = new SqlCommand(sqlString,conn);
06. 
07.SqlDataReader reader = comm.ExecuteReader();
08.grid.DataSource = reader;
09.grid.DataBind();
โค้ดชุดนี้ใส่ใน Function Page_Load คือให้เริ่มทำงานเมื่อหน้าเพจได้ทำการ load ข้อมูลนั้นเอง
ASP.net การใช้ GridView
ผลลัพธ์ก็จะได้ดังรูป จากตัวอย่างโค้ดจะเห็นว่าจะประกอบด้วย 3-4 ส่วนด้วยกันคือ 1 ทำการเชื่อมต่อฐานข้อมูลซึ่งจะต้องเป็นข้อมูลที่ถูกต้องเพื่อที่จะได้เข้าไปใช้งานได้ซึ่งตัวอย่างก็คือ
ต่อจากนั้นทำการเปิดไฟล์ Query.cs เพื่อทำการเขียนโค้ด โดยจำเป็นต้องมีการใช้ library สำหรับเชื่อมต่อฐานข้อมูล SQLServer โดยใช้คำสั่ง
1.SqlConnection conn = new SqlConnection(@"server=.\sqlexpress;integrated security=true;database=northwind");
2.conn.Open();
ซึ่งเวลา new SqlConnection ก็จะใส่รายละเอียดของ server ต่อจากนั้นก็ใช้คำสั่ง Open() เพื่อทำการเชื่อมต่อ
เมื่อเชื่อมต่อเสร็จแล้วก็จะทำการดึงข้อมูลโดยคำสั่ง sql นั้นถูกกำหนดแต่เก็บในตัวแปร sqlString ต่อจากนั้นเมื่อต้องการดึงข้อมูลก็จะใช้ SqlCommand เพื่อกำหนดคำสั่งและทำการดึงข้อมูล จากตัวอย่างนั้นก็จะใช้ฟังก์ชั่น ExecuteReader เพื่อทำการดึงข้อมูลมาเพื่อดูข้อมูล หลังจากดึงข้อมูลเรียบร้อยแล้วก็จะทำการแสดงผลไปยัง GridView โดยใช้คำสั่งต่อไปนี้
1.SqlDataReader reader = comm.ExecuteReader();
2.grid.DataSource = reader;
3.grid.DataBind();
มันก็จะแสดงผลตามที่เราต้องการแล้วครับ