18 มกราคม 2561

SQL Server - ติดตั้ง SQL Server บน Linux (Ubuntu)

        เป็นการปรับตัวของ Microsoft ที่พัฒนา SQL Server สำหรับติดตั้งบน OS Linux ทำให้ผู้ที่อยากใช้ Linux เป็น Server ทำการติดตั้ง SQL Server ได้แล้ว (ประหยัดงบไปได้เยอะสำหรับ หน่วยงานเบี้ยน้อยหอยน้อย) เอาละมาเริ่มกันเลย

1. ทำการติดตั้งระบบปฏิบัติการ Linux สำหรับผู้เรียนใช้ Ubuntu 16.04 ซึ่ง Microsoft ก็ระบุให้ใช้รุ่น 16.04 หรือใหม่กว่า

2. เปิดหน้าต่าง Terminal ขึ้นมาแล้วลุยกันเลย (วิธีติดตั้งอ้างอิงมาจาก https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu)

          2.1 Import the public repository GPG keys: ด้วยคำสั่ง

             wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

          2.2 Register the Microsoft SQL Server Ubuntu repository: ด้วยคำสั่ง

               sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"

          2.3 ติดตั้ง SQL Server : ด้วยคำสั่ง

                sudo apt-get update 
        sudo apt-get install -y mssql-server

                ในขั้นตอนนี้การติดตั้งจะให้

          2.4 ทำการเรียก mssql-conf setup เพื่อเลือกว่าจะติดตั้ง SQL Server รุ่นไหน มีทั้งเสียเงินและฟรี หลายรุ่นมาก และกำหนดรหัสผ่านสำหรับ sa : ด้วยคำสั่ง

                sudo /opt/mssql/bin/mssql-conf setup


           เมื่อถึงขั้นตอนที่ให้เลือกว่าจะติดตั้ง SQL Server ให้พิมพ์ข้อ 3 เพื่อติดตั้ง SQL Server รุ่น Express ระบบจะติดตั้งและ ให้กำหนดรหัสผ่าน  
           การกำหนดรหัสผ่านให้กำหนดอยา่งน้อย 8 ตัว มีตัวอักษรพิมพ์ใหญ่ พิมพ์เลข ตัวเลข

           2.5 ดูสถานะของ service ที่ run : ด้วยคำสั่ง
     
        systemctl status mssql-server  

           ** หากมีการใช้งานแบบรีโมท SQL Server ให้เปิดพอร์ด 1433 และ 433 ด้วยคำสั่ง 
               
        sudo ufw enable
        sudo ufw allow 1433
        sudo ufw allow 433
 

          เรียบร้อยสำหรับการติดตั้ง SQL Server บน Linux แต่ยังไม่จบ... อ่านต่อข้อ 3

3. ติดตั้ง SQL Server Command Line Tools เครื่องมือป้อนคำสั่ง SQL แบบ textmode บน Linux

         3.1 Import the public repository GPG keys: ด้วยคำสั่ง         

         wget -qO- https://packages.microsoft.com/keys/microsoft.asc 
| sudo apt-key add -

          3.2 Register the Microsoft SQL Server Ubuntu repository: ด้วยคำสั่ง

          sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"

          3.3 ติดตั้ง SQL Command Line : ด้วยคำสั่ง

          sudo apt-get update
          sudo apt-get install -y mssql-tools unixodbc-dev

         3.4 ทำการเพิ่ม PATH สำหรับเรียกใช้งาน sqlcmd จากที่ไหนก็ได้ : ด้วยคำสั่ง 

          echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
          echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
          source ~/.bashrc

 *** เรียบร้อยสำหรับการติดตั้ง SQL Server บนระบบปฏิบัติการ Linux

การเรียกใช้ SQL Server ผ่านทาง SQL Server Command Line ใช้คำสั่ง

          sqlcmd -S localhost -U SA -P รหัสผ่าน

ที่เหลือก็สร้าง database สร้าง table ด้วยคำสั่ง T-SQL ตามต้องการ

หรือ เปิดใช้งาน SQL Server Management Studio จากเครื่องที่เป็น Windows ที่อยู่ในเครือข่ายเดียวกันโดยอ้าง Server ด้วยหมายเลข ip ของ Server Linux

 ต้องการดูหมายเลข ip ของ Linux ให้ใช้คำสั่ง 
 
         ifconfig


4. การติดตั้ง Full Text Search

         4.1 ติดตั้ง mssql-server-fts : ด้วยคำสั่ง

        sudo apt-get update 
        sudo apt-get install -y mssql-server-fts

5. หากต้องการจัดการฐานข้อมูลด้วย SQL Server Management Studio (SSMS) สำหรับในช่วงเวลานี้จำเป็นต้องติดตั้งบนระบบปฏิบัติการ Windows ที่เครื่องลูกข่ายเท่านั้น ยังไม่รู้ว่าอีกเมื่อไหร่ MS จะทำ SSMS สำหรับ Linux มาให้เราใช้
         5.1 ให้ดาวน์โหลด SSMS ตั้งแต่รุ่น SSMS 17.x ขึ้นไปมาใช้งาน โดยเข้าไปดาวน์โหลดที่เว็บ

         https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

6. ติดตั้ง MariaDB
 
        sudo apt-get update 
        sudo apt-get install mariadb-server
  
           ทำการกำหนดรหัสผ่านให้กับ root โดยพิมพ์คำสั่ง
  
        sudo apt-get install mysql_secure_installation
 
            จะขึ้นให้กำหนดรหัสผ่านสำหรับ root จากนั้นกำหนด
            Remove anonymous user ?    Y
            Disallow root login remotely?  Y
            Remove test database and access to it? Y
            Reload privilege tables now? Y

            เข้าใช้งาน mysql ด้วยคำสั่ง

         sudo mysql -uroot -pรหัสผ่าน

7. ติดตั้ง PHP7
 
        sudo apt-get update 
        sudo apt-get install php-fpm

           ทำให้ nginx มองเห็น php
 
        sudo nano /etc/nginx/sites-enabled/default 
 
           ให้ไปที่บรรทัด

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
           แล้วแก้เพิ่ม index.php เข้าไป

        index index.php index.html index.htm index.nginx-debian.html; 
  
           ไปแก้ตรง pass the PHP script โดยเอาเครื่องหมาย # ออก ตามตัวอย่าง

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
               include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
               fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }        
  
           และตรงบรรทัด deny access to .htaccess file
 
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
               deny all;
        }
 
           กดปุ่ม Ctrl-O แล้ว Enter จากนั้นกด Ctrl-X เพื่อบันทึก และออกจากการแก้ไข

8. ติดตั้ง nginx เพื่อทำ web server
 
        sudo apt-get update 
        sudo apt-get install nginx
 
           การ เปิด - ปิด Service ของ nginx
          
        sudo service nginx stop         -- ปิด Service ของ nginx
        sudo apt-get install nginx      -- เปิด Service ของ nginx

           สำหรับไฟล์ html ต่างๆ จะถูกจัดเก็บไว้ภายใต้ /var/www/html สามารถเข้าไปดูได้โดยใช้คำสั่ง

        cd /var/www/html 
        ls -l 

           ทำการสร้างไฟล์ php เพื่อทดสอบ

        sudo nano /var/www/html/index.php
 
           จากนั้นพิมพ์คำสั่งดังนี้          
           
       <?php 
            phpinfo();
       ?>
 
           บันทึกแล้วทดสอบ....

9. ติดตั้ง phpmyadmin สามารถเข้าไปดูได้โดย
อ้างอิงจาก https://websiteforstudents.com/install-phpmyadmin-on-ubuntu-17-04-17-10-with-nginx-mariadb-and-php-fpm-support/ 

       sudo apt-get install phpmyadmin php-gettext
 
ระหว่างติดตั้งจะให้กำหนดรหัสผ่านสำหรับ MariaDB หรือ MySQL
จากนั้น เมื่อถึงหน้าจอกำหนด Web Server ให้คลิกปุ่ม Tab เพื่อมาที่ปุ่ม OK โดยไม่ต้องเลือก Web Server  ดังภาพ















แล้วทำการติดตั้งไปจนเสร็จ

10. ส่วนนี้เพิ่มเติม สำหรับ ทำให ้Files (File Manager) เปิดแบบใช้สิทธิ root ให้ติดตั้งโปรแกรม ด้วยคำสั่ง
           
      sudo apt-get install -y nautilus-admin

      nautilus -q 

11. การเปิด File Manager ของ Ubuntu ผ่านทาง Terminal
           ให้ไปที่ Folder ที่ต้องการ เช่น cd  /var/www/html
           จากนั้นเปิด File Manager ด้วยคำสั่ง

      sudo xdg-open .


การติดตั้ง SQL Server , nginx , PHP 7, MariaDB  บน Ubuntu ง่ายนิดเดียว

สวัสดีมีเงินเหลือใช้

16 มกราคม 2561

VB.Net : Send email

การส่ง Email ด้วย VB.Net ผ่านทาง gmail ของ google
1. ให้ทำการสร้างฟอร์ม จากนั้นทำการออกแบบหน้าจอตามตัวอย่าง

 ให้กำหนดชื่อ Textbox  และ Label ตามภาพ

- txtTo คือ email ที่เราต้องการส่ง
- txtSubject คือ ข้อความหัวเรื่อง
- txtMessage คือข้อความที่ส่ง
      - กำหนด Multiline = true
- lblSendResult ไว้สำหรับแสดงสถานะการส่งว่าสำเร็จหรือไม่
- ปุ่ม Send Mail ไว้คลิกส่ง email








2. จากนั้นทำการดับเบิ้ลคลิกที่ปุ่ม Send Mail เพื่อทำการเขียนคำสั่ง ดังนี้ (คำสั่งสีน้ำเงิน)
** ทำการ Import System.Net.Mail เข้ามาด้วย ห้ามลืม เดี๋ยวจะ Error

Imports System.Net.Mail 

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim Mail As New MailMessage
        Try
            Mail.Subject = txtSubject.Text
            Mail.To.Add(txtTo.Text)
            Mail.From = New MailAddress("ใส่EmailของGoogle@gmail.com")
            Mail.Body = txtMessage.Text

        
            ' หากต้องการแนบไฟล์ ก็เพิ่มตรงส่วนนี้เข้าไป
            Dim attachment As System.Net.Mail.Attachment
            attachment = New System.Net.Mail.Attachment("D:\Pictures\vbSendMail.png")
            Mail.Attachments.Add(attachment)


            Dim SMTP As New SmtpClient("smtp.gmail.com")
            SMTP.EnableSsl = True
            SMTP.Credentials = New System.Net.NetworkCredential("ใส่EmailของGoogle@gmail.com", "ใส่ Email Password")
            SMTP.Port = 587
            SMTP.Send(Mail)
            lblSendResult.Text = "Email sent successfully!"

            txtTo.Text = ""
            txtSubject.Text = ""
            txtMessage.Text = ""
        Catch ex As Exception
            lblSendResult.Text = ex.Message
        End Try
    End Sub

End Class


ทำการบันทึกฟอร์ม

3. จากนั้นทำการ login เข้าไปที่ gmail ที่เราจะใช้สำหรับเป็นตัวส่ง email

4. หลังจากที่ login เข้า gmail แล้วให้เข้าไปกำหนดสิทธิโดยเข้าไปที่เว็บ 

https://myaccount.google.com/lesssecureapps

แล้วทำการเปิดสิทธิ์ตามภาพ












จากนั้นก็ไป run ฟอร์มที่ VB.Net แล้วทดสอบส่ง Email ดู

หมายเหตุ  สำหรับการกำหนดค่า เซิร์ฟเวอร์ SMTP ของ gmail สามารถเข้าดูได้ที่
https://support.google.com/a/answer/176600?hl=th


โชคดีมีเมล์ส่ง


10 มิถุนายน 2560

แก้ปัญหาเปิด HTML Help ไฟล์ (.chm) ไม่ได้

ให้ไปดาวน์โหลดโปรแกรมตามลิงค์ด้านล่าง แล้วทำตามขั้นตอนที่แจ้งไว้

http://www.helpandmanual.com/products_hhreg.html

_________________________________________________________

Microsoft ออก Patch มาแก้เรื่อง font ภาษาไทยที่ "สระ" เปลี่ยนเป็นตัวหนอน

Microsoft ออก Patch มาแก้เรื่อง font ภาษาไทยที่ "สระ" เปลี่ยนเป็นตัวหนอน




 ดาวน์โหลดได้ที่

http://www.catalog.update.microsoft.com/Search.aspx?q=KB4020102

----------------------------------------------------------------------------------------------------------------

16 พฤศจิกายน 2559

20 กันยายน 2559

Unity : 2D Game with Unity Part # 5




// โค้ดคำสั่ง Main_Controller.cs

using UnityEngine;
using System.Collections;

public class Man_Controller : MonoBehaviour {
public float speed;
float x, sx;
bool ks;
Animator am;
Rigidbody2D rb;

// Use this for initialization
void Start () {
am = GetComponent<Animator> ();
rb = GetComponent<Rigidbody2D> ();
sx = transform.localScale.x;
}

// Update is called once per frame
void Update () {
x = Input.GetAxis ("Horizontal");
am.SetFloat ("speed", Abs (x));


if (Input.GetButtonDown ("Jump")) {
am.SetBool ("jump", true);
rb.velocity = new Vector2 (rb.velocity.x, 5f);
}

rb.velocity = new Vector2 (x * speed, rb.velocity.y);

if (x > 0) {
transform.localScale = new Vector3 (sx, transform.localScale.y, transform.localScale.z);
}

if (x < 0) {
transform.localScale = new Vector3 (-sx, transform.localScale.y, transform.localScale.z);
}
}

void OnCollisionEnter2D(Collision2D coll) {
am.SetBool ("jump", false);
}
float Abs(float x) {
return x >= 0f ? x : -x;
}
}



// โค้ดคำสั่ง CameraFollow.cs
using UnityEngine;
using System.Collections;

public class CameraFollow : MonoBehaviour {
public Transform obj;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = new Vector3 (obj.position.x, transform.position.y, transform.position.z);
}
}

10 กันยายน 2559

Unity : 2D Game with Unity Part # 3



// โค้ดคำสั่งของ volt_controler.cs

using UnityEngine;
using System.Collections;

public class volt_controler : MonoBehaviour {
    public float jumpSpeed;
    Rigidbody2D rb;
    // Use this for initialization
    void Start () {
        rb = GetComponent ();
    }
   
    // Update is called once per frame
    void Update () {
        if (Input.GetButtonDown ("Jump")) {
            rb.velocity = new Vector2 (rb.velocity.x, jumpSpeed);
        }
    }
}

09 กันยายน 2559

Unity : 2D Game with Unity Part # 2




โค้ดคำสั่งของ  background.cs

using UnityEngine;
using System.Collections;

public class background : MonoBehaviour {

public float bgSpeed;
float bgPositionX;
float bg1PositionX;
// Use this for initialization

void Start () {
bgPositionX = transform.position.x;
bg1PositionX = GameObject.Find ("background_1").transform.position.x;
}

// Update is called once per frame
void Update () {
transform.position = new Vector3 (transform.position.x + bgSpeed, transform.position.y, transform.position.z);
if (transform.position.x < (bg1PositionX * -1f)) {
transform.position = new Vector3 (bg1PositionX, transform.position.y, transform.position.z);
}
}
}
โค้ดคำสั่งของ floor.cs

using UnityEngine;
using System.Collections;

public class floor : MonoBehaviour {
public float bgSpeed;
float bgPositionX;
float bg1PositionX;
// Use this for initialization
void Start () {
bgPositionX = transform.position.x;
bg1PositionX = GameObject.Find ("floor_1").transform.position.x;
}

// Update is called once per frame
void Update () {
transform.position = new Vector3 (transform.position.x + bgSpeed, transform.position.y, transform.position.z);
if (transform.position.x < (bg1PositionX * -1f)) {
transform.position = new Vector3 (bg1PositionX, transform.position.y, transform.position.z);
}
}
}

01 กันยายน 2559

Ubuntu : การติดตั้ง Software และการแก้ปัญหาต่างๆ บน Ubuntu

ติดตั้ง LAMPP (Apache, MariaDB and PHP)
ให้ทำการดาวน์โหลดโปรแกรมที่เว็บ
https://www.apachefriends.org/download.html
วิธีติดตั้ง
https://www.apachefriends.org/faq_linux.html

กำหนดให้ phpmyadmin สามารถเรียกได้จาก internet ภายนอก
ให้แก้ไขไฟล์ httpd-xampp.conf ซึ่งเก็บอยู่ที่ /opt/lampp/etc/extra โดยพิมพ์คำสั่ง
   sudo nano /opt/lampp/etc/extra/httpd-xampp.conf
จากนั้นแก้ไขตรงส่วนของ ตามตัวอย่างด้านล่าง

< Directory "/opt/lampp/phpmyadmin"   >

   AllowOverride AuthConfig Limit
    Order allow,deny
    Allow from all
    Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
 
 <  Directory   > 
  
จากนั้นทำการ รีสตาร์ lampp ใหม่
    sudo /opt/lampp/lampp restart

    ให้ทดสอบเข้า  http://localhost/phpmyadmin
     *** หากเข้า phpmyadmin แล้วไม่ถาม user และ password แสดงว่ายังไม่ได้กำหนดรหัสผ่านที่ mySQL ให้กับ root ให้เข้าไปกำหนดใน phpmyadmin ในส่วนของ user accounts  กำหนดรหัสผ่านให้กับ root ทุกตัว
     จากนั้นเข้าไปแก้ไขไฟล์ config.inc.php ซึ่งเก็บอยู่ที่ /opt/lampp/phpmyadmin

     sudo nano /opt/lampp/phpmyadmin/config.inc.php

     ตรงส่วนของ Authentication type ให้ลบ ชื่อ user ออก และ password ออก ดังนี้

      /* Authentication type */
     $cfg['Servers'][$i]['auth_type'] = 'cookie';
     $cfg['Servers'][$i]['user'] = '';
     $cfg['Servers'][$i]['password'] = '';
     $cfg['Servers'][$i]['extension'] = 'mysqli';
     /* Server parameters */
     $cfg['Servers'][$i]['host'] = 'localhost';
     $cfg['Servers'][$i]['connect_type'] = 'tcp';
     $cfg['Servers'][$i]['compress'] = false;
     $cfg['Servers'][$i]['AllowNoPassword'] = false;


วิธีติดตั้ง เว็บไทย
http://www.amplysoft.com/knowledge/install-apache2-php5-mysql-phpmyadmin-ubuntu.html

การจัดการ Service
ก่อนอื่นเปิดสถานะไฟล์ให้เรียกใช้งานได้ ทำแค่ครั้งแรกครั้งเดียว
cd /opt/lampp
sudo chmod 755 manager-linux-x64.run    (manager-linux.run สำหรับ 32บิต)
เวลาเรียกใช้งานพิมพ์คำสั่ง
sudo /opt/lampp/manager-linux-x64.run

กรณีที่เปิดเครื่องมาแล้ว เซอร์วิสของ lampp ไม่สตาร์ท ให้แก้ไขโดยใช้คำสั่ง
    sudo ln -s /opt/lampp/lampp  /etc/init.d/lampp
    sudo update-rc.d lampp start 80 2 3 4 5 . stop 30 0 1 6 .

ติดตั้ง Flash Player
  sudo apt-get update
  sudo apt-get install flashplugin-installer

การกำหนด Virtual Host

  ให้ทำการเปิด Terminal (Ctrl + Alt + T)
  จากนั้น เข้าไปแก้ไขไฟล์ httpd.conf ที่เก็บอยู่ภายใต้ /opt/lampp/etc โดยพิมพ์คำสั่งเปิดไฟล์ดังนี้

        sudo nano /opt/lampp/etc/httpd.conf

        ให้นำเครื่องหมาย # ออกให้เหลือแต่คำสั่ง ดังนี้ 
        Include etc/extra/httpd-vhosts.conf

   จากนั้น เข้าไปแก้ไขไฟล์ httpd-vhosts.conf ที่เก็บอยู่ภายใต้ /opt/lampp/etc/extra
        sudo nano /opt/lampp/etc/extra/httpd-vhosts.conf

    หากต้องการกำหนดให้ virtual host ชื่อ myweb โดยเก็บไฟล์ไว้ที่ /opt/lampp/apps/myweb/htdocs ให้เพิ่มคำสั่งดังนี้
  
   < virtualhost >
       DocumentRoot "/opt/lampp/htdocs/"
       ServerName localhost
   &lt/ virtualhost >
   < virtualhost >
       DocumentRoot "/opt/lampp/apps/myweb/htdocs"
       ServerName myweb.localhost
   </ virtualhost >
 
ติดตั้ง SAMBA ทำ file sharing ดูที่
http://na5cent.blogspot.com/2012/04/samba-ubutntu-1110-server.html

https://help.ubuntu.com/community/How%20to%20Create%20a%20Network%20Share%20Via%20Samba%20Via%20CLI%20(Command-line%20interface/Linux%20Terminal)%20-%20Uncomplicated,%20Simple%20and%20Brief%20Way!

ติดตั้ง MonoDeveloper ทำให้ linux รัน asp.net c# ได้
sudo apt-get install monodevelop

ติดตั้ง xsp4  โดยเข้าไปดูวิธีติดตั้งได้ที่

https://zxtech.wordpress.com/2015/01/04/how-to-install-xsp4-onto-ubuntu/

จากนั้นเปิดโปรแกรม mono สร้าง project asp.net web form แล้วเขียนโปรแกรมตามต้องการ แล้ว run














หากต้องการใช้งาน vb.net ก็ติดตั้งโดยพิมพ์คำสั่ง

sudo apt-get install monodevelop mono-vbnc

การติดตั้ง SSH

sudo apt-get install openssh-server
.ให้ทำการตรวจสอบสถานะ ssh
sudo service ssh status

คำสั่งในการเปิดใช้งาน
sudo service ssh start
จากนั้นก็ติดต่อโดยใช้ putty จากเครื่องใดๆ ในเน็ทเวิร์ค

การติดตั่้ง OwnCloud
ให้เลือกติดตั้งตามรุ่นของ OS ที่ใช้ ตามลิงค์ด้านล่าง
https://download.owncloud.org/download/repositories/stable/owncloud/


ปัญหาเมื่อเปิดเครื่องแล้ว จอไม่ขึ้นอะไรเลย มีแต่ภาพพื้นหลัง
ให้เข้าโหมด เท็กซ์ โดยกดปุ่ม Ctrl + Alt + F1 จากนั้นก็ล็อกอิน เมื่อเข้าไปแล้ว มีวิแก้ 2 วิธี ลองดูถ้าวิธีแรกได้ก็ไม่ต้องทำวิธีที 2
วิธีแก้แบบที่ 1  (ลองแล้วไม่ได้ผล แต่เครื่องอื่นไม่รู้)
     sudo apt-get update
     sudo apt-get install --reinstall ubuntu-destop
     sudo apt-get install install unity
     sudo shutdown -r now

วิธีแก้แบบที่ 2 (ล้างค่าคอนฟิกของระบบ ซึ่งไม่มีอะไรก็แค่ไปกำหนดใหม่นิดหน่อย)
     sudo rm -rf ~/.config
     sudo reboot

** อ้างอิงจาก : https://itsfoss.com/how-to-fix-no-unity-no-launcher-no-dash-in-ubuntu-12-10-quick-tip/


... ไว้มาต่อ ... 
 

18 สิงหาคม 2559

Unity 3D - เขียนเกมด้วย Unity ตอนที่ 1

เขียนเกมด้วย Unity ตอนที่ 1
วีดิโอ สอนเขียนเกมด้วย Unity 3D ปูพื้นฐาน




เขียนเกมด้วย Unity ตอนที่ 2
ตรวจสอบการชนกันของวัตถุ
ใส่เอฟเฟ็กระเบิด



11 กรกฎาคม 2559

Raspberry Pi

การกำหนดค่าต่างๆ บน Raspberry Pi
- ติดตั้ง OS สำหรับ Raspberry Pi แบบไม่มีจอ LCD เลือกใช้ RASPBIAN JASSIE ตัวเต็ม ->  https://downloads.raspberrypi.org/raspbian_latest

- กรณีซื้อจอ LCD มาติดตั้งเพิ่ม ต้องดูว่าซื้อยี่ห้อ รุ่น ขนาดใด แล้วไปหาดาวน์โหลด OS หรือ Driver ให้ถูกรุ่น เช่น ซื้อจอ LCD ยี่ห้อ OSOYOO ก็ไปดาวน์ที่เว็บไซต์ผู้ผลิต -> http://osoyoo.com/2016/05/26/osoyoo-lcd-touch-screen-for-raspberry-pi-installation-guide/

- ไปดาวน์โหลดโปรแกรม Win32 Disk Imager เพื่อเอาไว้สร้าง disk image สำหรับ OS บน sd card -> https://sourceforge.net/projects/win32diskimager/

- ติดตั้งภาษาไทย กำหนดค่าต่างๆ -> http://dtv.mcot.net/data/up_show.php?id=1453644382&web=epost

- กำหนดให้เครื่องอื่นมองเห็น เปิดหน้าต่าง Terminal ที่ Raspberry แล้วพิมพ์
ssh หมายเลขไอพี เช่น ssh 192.168.1.132
จากนั้นจะมีให้ใส่รหัสผ่าน ถ้าไม่ได้เปลี่ยนรหัสผ่านก็ใช้ raspberry

- ifconfig คล้ายกับ ipconfig ใน windows pc

- ถ้าต้องการ Telnet จาก pc ไปยัง raspberry pi ก็ให้ไป d/l โปรแกรม Putty มาติดตั้ง -> http://software.thaiware.com/download.php?id=10912

- ติดตั้ง Apache, PHP , mySQL -> https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/

หรือ https://www.stewright.me/2015/08/tutorial-install-apache-php-and-mysql-on-a-raspberry-pi-2/

หากต้องการติดตั้ง php 7 ให้ใช้คำสั่ง
sudo apt-get install php7.1

- กำหนดให้ mySQL สามารถ Remote จากเครื่องอื่นได้
   เข้าไปแก้ไขไฟล์ my.cnf ->  sudo nano /etc/mysql/my.cnf
   ให้เพิ่มหมายเลขไอพีของเครื่องโดยเพิ่มคำสั่ง ( ตัวอย่างหมายเลขไอพี 192.168.1.132) 
                  bind-address  = 192.168.1.132
   จากนั้นให้ทำการ รีสตาร์ทเครื่อง raspberry pi ใหม่ หรือ สั่งรีสตาร์ทเซอร์วิส mysql ใหม่ด้วย
                  sudo service mysql restart    

   เปิด web browser เข้า  http://192.168.1.132/phpmyadmin
   ใส่ user : root  , password : รหัสผ่าน ของ mysql
                  แล้วป้อนคำสั่ง SQL เพื่อกำหนดสิทธิ ดังนี้
                  GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%'
            IDENTIFIED
BY 'ใส่รหัสผ่าน' 

           
WITH GRANT OPTION;

         FLUSH PRIVILEGES
;

      * หากต้องการให้สิทธิกับ user อื่น ก็แก้ไขตามต้องการ


- ติดตั้ง PhpMyAdmin -> https://www.stewright.me/2012/09/tutorial-install-phpmyadmin-on-your-raspberry-pi/

- ติดตั้ง ftp -> https://pimylifeup.com/raspberry-pi-ftp/

- ติดตั้ง samba สำหรับ share folder เพื่อให้ windows มองเห็น \\192.168.1.32\sharefolder
   -> http://www.htpcguides.com/create-samba-share-raspberry-pi/

- ติดตั้ง dosbox เพื่อจำลองให้ใช้งาน DOS ได้
    sudo apt-get install dosbox
   หลังจากติดตั้งเสร็จให้เรียกใช้งานได้พิมพ์
   dosbox
   เมื่อเข้าหน้าจอ dosbox แล้ว เราต้องไปทำการสร้างโฟลเดอร์ที่ต้องการภายใต้ Raspberry Pi เช่น สร้างไว้ภายใต้ /pi โดยตั้งชื่อ เช่น dos_c
   จากนั้น กลับมาที่หน้าต่าง dosbox ให้ทำการ mount  เพื่ออ้างอิงชื่อไดร์ฟ กับ โฟลเดอร์ โดยป้อนคำสั่ง
   mount c dos_c
   จากนั้นทดสอบโดยเปลี่ยน ไดรฟ์ เป็น c:
   ที่เหลือก็ลองนำโปรแกรม สมัยดอส มาใส่ไว้ในโฟลดเดอร์ dos_c ตัว dosbox ไดร์ฟ c ก็จะเห็นเอง
========================================


11 พฤษภาคม 2559

VB.Net : Export DataGridView to Excel

คำถามหากเรามีความจำเป็นต้องโอนข้อมูลที่แสดงผลบน VB.Net เข้าสู่ Excel จะทำอย่างไร
คำตอบ อยู่ที่นี่แล้ว
อิๆๆ สั้นๆ ได้ใจความ
1. ให้สร้างโปรเจกต์ขึ้นมาใหม่ จากนั้น ไปที่เมนู PROJECT เลือกรายการ Add Reference...

ที่หน้าต่าง Reference Manager ให้เลือก Extensions แล้วไปคลิกเลือก Microsoft.Office.Interop.Excel
















2. จากนั้น สร้าง DataGrideView ชื่อ DataGridView1  แล้วทำอย่างไรก็ได้ตามสะดวกเพื่อนำข้อมูลมาใส่ (อันนี้เขียนโปรแกรมเองน่ะครับ ไม่ขออธิบาย เดี๋ยวจะยาว)

3. ทำการเพิ่มปุ่ม Button สำหรับคลิกเพื่อให้ทำการ Export โดยตั้งชื่อเป็น Button1 ที่เหลือกำหนด Property เอาเอง ดังภาพ

















ดับเบิ้ลคลิกที่ปุ่ม แล้วทำการเขียนคำสั่ง ดังนี้

บรรทัดบนสุดก่อน Public Class ของฟอร์ม ให้ Imports ก่อน อย่าลืม โดยพิมพ์คำสั่ง

Imports Excel = Microsoft.Office.Interop.Excel

จากนั้น ที่ Sub Button1 ป้อนคำสั่ง ดังนี้

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim excelLocation As String = "d:\test.xlsx"
        Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        If xlApp Is Nothing Then
            MessageBox.Show("Excel is not Install.")
            Return
        End If

        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("sheet1")
        'Header Names
        Dim columnsCount As Integer = DataGridView1.Columns.Count
        For Each column In DataGridView1.Columns
            xlWorkSheet.Cells(1, column.Index + 1).Value = column.Name
        Next
        'Data
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            Dim columnIndex As Integer = 0
            Do Until columnIndex = columnsCount     
                xlWorkSheet.Cells(i + 2, columnIndex + 1).Value = DataGridView1.Item(columnIndex, i).Value
                columnIndex += 1
            Loop
        Next

        xlWorkBook.SaveAs(excelLocation)
        xlWorkBook.Close()
        xlApp.Quit()
        MessageBox.Show("Export to Excel Complete")
    End Sub


จากนั้นก็สั่งรันโปรแกรมทดสอบ ก็จะได้ไฟล์ชื่อ "d:\test.xlsx" อยู่ที่ไดร์ฟ D:
อยากเก็บไว้ที่ไหนไฟล์อะไรก็แก้เอาน่ะ

สวัสดี มีความสุขทุกวัน



28 เมษายน 2559

VFP : Display Base64 image

Base64 คือรูปแบบการเข้ารหัสวิธีหนึ่ง แต่ที่นิยมกันในปัจจุบันโดยการนำไปใช้เพื่อทำให้ข้อมูลที่เก็บอยู่ในรูปของไบนารี เช่น ภาพ JPG PNG หรือ Bitmap  กลายมาเป็นรูปแบบของตัวอักษร

นิยมนำไปใช้ภายใต้ HTML ตัวอย่างการใช้ ผ่านทางแท็ก img

<img src="data:image/jpg;base64,As10AAQSkZJRg........................Ed0/E//9k=" />

ถ้าหากต้องการเข้ารหัสภาพทางเว็บบราวเซอร์ สามารถเข้าไปที่เว็บ

https://www.base64-image.de/


สำหรับบทความนี้จะนำเสนอวิธีการใช้ด้วยโปรแกรม Visual FoxPro ดังนี้

การเข้ารหัสรูปแบบของภาพไปเป็น Base64

lcPictureFile = GETPICT( "jpg" )
lcPictBase64  = STRCONV( FILETOSTR( lcPictureFile ) , 13 )

การแปลงข้อมูล Base64 กลับไปเป็นแฟ้มภาพ

=STRTOFILE(STRCONV( lcPictBase64 , 14) , lcPictureFile)

การนำข้อมูล Base64 แสดงภายใต้คอนโทรล Image 

Thisform.Image1.PictureVal = STRCONV( lcPictBase64 , 14)

การนำเอาข้อมูล Base64 ไปออกรายงาน

ข้อมูล Base64 เป็นข้อมูลตัวอักษรธรรมดา ซึ่งเราสามารถนำไปบันทึกลงในฟิลด์ได้ทันที โดยเก็บไว้ในฟิลด์ประเภท memo หากต้องการนำข้อมูลมาแสดงผลเป็นรูปภาพในรายงาน สามารถทำได้หลายวิธีดังนี้

* สมมุติขอมูล Base64 ถูกเก็บไว้ที่ตาราง TableBase ภายใต้ฟิลด์ชื่อ Pict

วิธีที่ 1 

1. สร้างรายงาน CREATE REPORT myReport
2. ทำการสร้างตัวแปร โดยคลิกที่เมนู Report -> Variables...
    ที่แท็ป Variables ให้กำหนด
          Value to store:  BlobImage
          Initial value: CREATEOBJECT("Image")
















3  นำคอนโทรล Picture/OLE มาใส่ในรายงาน
    double click จะเข้าสู่หน้าต่าง Picture/OLE Bound Properties
         ที่ แท็ป General คลิกเลือก Expression or variable name
         จากนั้นป้อนตัวแปรที่ช่อง Control source: BlobImage
         คลิกปุ่ม OK













4. double click ที่ Detail จะเข้าสู่หน้าต่าง Detail Band Properties
    คลิกที่แท็บ General
       ทีช่อง On entry: ใส่คำสั่ง
         
              EXECSCRIPT("Blobimage.PictureVal=STRCONV(TableBase.Pict , 14)")

              *** TableBase.Pict คือชื่อตารางและฟิลด์ที่เก็บข้อมูล Base64




















ทำการบันทึกรายงาน เป็นอันเสร็จเรียบร้อย


วิธีที่ 2

1. สร้างรายงาน จากนั้นนำคอนโทรล Picture/OLE มาใส่
    double click กำหนดค่าในแท็บ General โดยคลิกเลือก Expression or variable name
    ที่ช่อง Control Source:  loRL.oBlobImage
    
    ** loRL คือชื่อ object  และ oBlobImage คือชื่อ property
















2.  ทำการเขียนคำสั่ง เพื่อแสดงภาพในรายงาน ดังนี้

USE TableBase    && ตารางที่มีข้อมูล Base64

SET REPORTBEHAVIOR 90

loRL = NEWOBJECT( 'PreviewListener' )
loRL.InitBLOBImage( )  
loRL.LISTENERTYPE = 1  && Preview

REPORT FORM ชื่อรายงาน OBJECT loRL      

RETURN

DEFINE CLASS PreviewListener AS REPORTLISTENER
oBlobImage = NULL

PROCEDURE InitBLOBImage(lpcBlobField AS STRING)
THIS.oBlobImage = NEWOBJECT( 'IMAGE' )
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDPROC

PROCEDURE BEFOREBAND( nBandObjCode, nFRXRecNo )
IF nBandObjCode = 4 && Detail band
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDIF
ENDPROC
ENDDEFINE


เสร็จสำหรับการจัดการแสดงผลภาพจาก Base64 ในรายงาน


สำหรับการนำเสนอวิธีการจัดการกับการเข้ารหัสด้วย Base64 ก็จบเพียงเท่านี้

สวัสดี ปีที่มีอากาศร้อนที่สุดๆๆๆๆ

22 เมษายน 2559

ActiveVFP สร้างสรรค์เว็บด้วย VFP

ActiveVFP เป็นภาษาคลิปต์ที่ออกแบบมาสำหรับนักพัฒนาเว็บ โดยอาศัยพื้นฐานภาษา Visual FoxPro ในการพัฒนา (เหมือนกับการพัฒนาเว็บด้วยภาษา PHP, ASP) ActiveVFP ถูกสร้างขึ้นมาเป็นลักษณะของซอฟต์แวร์โอเพ่นซอรส์ เพื่อให้นักพัฒนาที่มีความถนัดในการเขียนโปรแกรม VFP สามารถนำไปใช้งานและต่อยอดความสามารถต่างๆ ได้อย่างสะดวกและรวดเร็ย โดยไม่จำเป็นต้องเรียนรู้ภาษาใหม่

จะหาโปรแกรม ActiveVFP ได้จากที่ไหน ?
สามารถดาวน์โหลดโปรแกรมได้ที่ http://activevfp.codeplex.com/

เตรียมการก่อนติดตั้งโปรแกรม ActiveVFP

การใช้งาน ActiveVFP จำเป็นต้องติดตั้ง IIS ก่อน เพื่อจำลองเครื่องคอมพิวเตอร์ของเราให้เป็น Web Server ดังนี้
1. คลิกที่เมนู Start ของ Windows เพื่อเปิด Control Panel -> Programs -> Programs and Features จะเข้าสู่หน้าต่าง Unstall or change a program ให้คลิกเลือก Turn Windows features on or off















2. ที่หน้าต่าง Windows Features ให้เลือกติดตั้ง Insternet Information Service และเลือก รายการ Application Development Features ตามต้องการ ดังภาพตัวอย่าง

























คลิกปุ่ม OK
ระบบจะทำการติดตั้ง IIS จนแล้วเสร็จ

3. ทำการทดสอบว่าสามารถใช้งาน IIS ได้หรือยัง โดยเปิดโปรแกรมเว็บบราวเซอร์ แล้วพิมพ์ url
http://localhost
หากติดตั้งสำเร็จ จะขึ้นเว็บ ดังภาพ (ขึ้นอยู่กับรุ่นของ IIS)

















วิธีการติดตั้งโปรแกรม ActiveVFP

1. ให้เรียกไฟล์ติดตั้งที่ทำการดาวน์โหลดมา (ActiveVFP603,exe) ขณะที่โปรแกรมทำการติดตั้งจะปรากฏหน้าจอให้กำหนดไดเรคทอรีสำหรับเว็บไซต์
ให้กำหนดชื่อตามต้องการ ดังภาพ










หลังจากทำการตั้งชื่อแล้วกดปุ่ม Enter โปรแกรมจะทำการติดตั้งไฟล์ต่างๆ ลงในไดเรคทอรีที่กำหนด จากนั้น โปรแกรมจะให้เรากำหนดชื่อของ Virtual Directory Name ให้กำหนดชื่อตามต้องการ ดังภาพ










เมื่อกำหนดชื่อเรียบร้อยให้กดปุ่ม Enter โปรแกรมจะทำการเพิ่ม Web Site ที่เรากำหนดให้กับ IIS
เมื่อติดตั้งเรียบร้อย กด Enter แล้วจะปรากฎหน้าต่างเว็บบราวเซอร์ แสดงรายละเอียดของ ActiveVFP ดังภาพ



















เสร็จสิ้นสำหรับการติดตั้ง ActiveVFP

การปรับแต่ง ActiveVFP ให้สนับสนุนภาษาไทย และภาษาอื่นๆ 

1. ให้ทำการเปิดโฟลเดอร์ที่ทำการติดตั้ง ActiveVFP  จากนั้นเข้าไปที่โฟลเดอร์ย่อย ชื่อ prg ดังภาพ


















ทำการเปิดโปรแกรม VisualFoxPro แล้วเข้าไปแก้ไขโปรแกรม .prg ที่อยู่ในโฟล์เดอร์เหล่านี้ โดยทำการค้นหา คำสั่ง
 
oHTML.mergescript(lcHTMLout)

เมื่อพบแล้ว ให้เพิ่มคำสั่ง

 lcHTMLout=STRCONV(lcHTMLout,11)           && for support thai language

โดยนำคำสั่งข้างต้นไว้ก่อนหน้าบรรทัดที่ค้นหาพบ ดังภาพ
















ให้ค้นหาทุกไฟล์ .prg และเพิ่มตามตัวอย่าง ก็จะทำให้การแสดงผลและการใช้ภาษาไทยบนหน้าเว็บเป็นไปอย่างถูกต้อง

การกำหนดให้สามารถพิมพ์รายงานของ VisualFoxPro

ขั้นตอนนี้เป็นการกำหนดให้ ActiveVFP สามารถเรียกใช้รายงานของ VisualFoxPro (.frx) ที่ได้ทำการสร้างไว้
1. ให้ทำการดาวน์โหลโปรแกรม Ghostscript จากเว็บไซต์

http://ghostscript.com/download/gsdnld.html

แล้วทำการติดตั้งลงในคอมพิวเตอร์

2. ทำการเปิด Windows Command Prompt ในโหมด Run As Administrator

























3. ไปที่โฟล์เดอร์ที่เราได้ติดตั้ง ActiveVFP แล้วเข้าไปที่โฟลเดอร์ reports ทำการ Register ไฟล์  PDFRun.exe โดยอ้างโฟลเดอร์แบบเต็ม ตามตัวอย่างดังภาพ









4. ทำการกำหนดสิทธิ์ให้กับ PDFrun.Print2PDF  โดยการเรียกใช้คำสั่ง mmc comexp.msc /32 ในโหมด Run as Administrator (สำหรับ Windows 7 หรือรุ่นที่สูงกว่า) หรือ DCOMCNFG (สำหรับรุ่นที่ต่ำกว่า Windows 7)


















5. ที่หน้าต่าง Component Serveice ให้เข้าไปกำหนดสิทธิให้กับรายการ PDFrun.Print2PDF
โดยให้สิทธิกับผู้ใช้
IIS_IUSRS
IUSR





































เป็นอันเสร็จเรียบร้อย

5. ให้ทำการเพิ่มเครื่องพิมพ์ให้กับ Windows โดยทำการเพิ่มเครื่องพิม์
Xerox Phaser 6120 PS  (สำหรับ Windows7 หรือสูงกว่า)
Xerox Phaser 1235 PS  (สำหรับ Windows Vista)
Apple Color LW 12/660 PS (สำหรับ Windows 2003 Server)

สำหรับบทความนี้ก็ขอจบเพียงเท่านี้

สวัสดีมีเว็บใช้งาน




31 ธันวาคม 2558

SQL Server - การ Export SQL Server Data โดยใช้ Generate Scripts

การนำข้อมูลจาก SQL Server มีหลายวิธี เช่น การสำรองข้อมูล (backup) หรือ การก๊อปปี้ไฟล์ฐานข้อมูลโดยการ  Detach ออกก่อน ซึ่งวิธีเหล่านี้เราจะไม่สามารถเห็นคำสั่งหรือข้อมูลของฐานข้อมูล แต่ยังมีอีกวิธีการหนึ่งที่ทำให้เราสามารถ เห็นคำสั่งตั้งแต่เริ่มสร้างฐานข้อมูล ตาราง รวมถึงคำสั่งในการเพิ่มข้อมูลและข้อมูลต่างๆในตารางของฐานข้อมูลที่ต้องการได้

1. ให้คลิกเมาส์ปุ่มขวาที่ฐานข้อมูลที่ต้องการ Export
         เลือก Task -> Generate Scripts...


















2. จะปรากฎหน้าต่าง Generate and Publish Script - Introduction ให้คลิกปุ่ม Next






















3. หน้าต่าง Generate and Publish Script - Choose Objects เป็นส่วนที่ให้กำหนดว่าจะเลือกการ Export แบบใด
         - Script entire database and all database objects เป็นการเลือกสิ่งที่อยู่ภายใต้ฐานข้อมูลทั้งหมด
         - Select specific database objects เป็นการเลือกเฉพาะตารางที่ต้องการ

จากนั้นคลิกปุ่ม Next



    










4. หน้าต่าง Generate and Publish Script - Set Scripting Options 

- เลือก Save scripts to a specific location 

- เลือก Save to file 
            ที่ช่อง File name ให้กำหนดชื่อไฟล์และโฟลเดอร์ที่บันทึกรายละเอียดของ scripts

จากนั้นคลิกที่ปุ่ม Advanced


















5. เมื่อคลิกปุ่ม Advanced จะปรากฎหน้าต่าง Advanced Scripting Options 
          ไปที่รายการ  Type of data to script  แล้วกำหนดค่าตามต้องการ

                - Data only  เป็นการ Export เฉพาะข้อมูล
                - Schema and data  เป็นการ Export โครงสร้างและข้อมูล
                - Schema only  เป็นการ Export เฉพาะโครงสร้าง





















คลิกปุ่ม OK 
จะกลับมายังหน้าต่าง Generate and Publish Script - Set Scripting Options  ให้คลิกปุ่ม Next

6. หน้าต่าง Generate and Publish Script - Summary ให้คลิกปุ่ม Next















โปรแกรมก็จะทำการ Generate Scripts ให้จนเสร็จ ก็กดปุ่ม Finish ก็จะได้ไฟล์สคริปต์ตามที่ต้องการ สามารถนำไปใช้งานต่อได้

ตัวอย่างข้อมูลในไฟล์สคริปต์ ที่ Generate โดยเปิดผ่านทางหน้าต่าง New Query















สวัสดีวันส่งท้ายปีเก่า 31 ธันวาคม 2558
อย่าลืมไปดูไฟผู้ว่า ณ ลานคนเมือง 39 ล้านบาท

สวัสดีมีโชค


  

24 ธันวาคม 2558

ASP.NET dynamic HighCharts with SQL Server

การแสดงผลด้วยกราฟ ด้วย HighCharts

1. สร้างตารางเก็บข้อมูล ภายใต้ SQL Server ดังนี้

USE yourDatabase 
GO
CREATE TABLE [dbo].[tblTicker](
[RowOrder] [int] IDENTITY(1,1) NOT NULL,
[year] [nchar](4) NULL,
[Symbol] [nvarchar](15) NULL,
[Value1] [numeric](12, 2) NULL,
[value2] [numeric](12, 2) NULL
) ON [PRIMARY]

GO 

2. ทำการเพิ่มข้อมูลให้กับตาราง ตามตัวอย่างดังภาพ














3. ให้เปิดโปรแกรม Visual Studio 201x จากนั้นทำการสร้างเว็บฟอร์ม

- ไฟล์นามสกุล .aspx ป้อนคำสั่งดังนี้

<!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
 <title></title>
 <meta charset= "utf-8" />
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
 <script src="https://code.highcharts.com/highcharts.js"></script>
 <script src="https://code.highcharts.com/modules/data.js"></script>
 <script src="https://code.highcharts.com/modules/exporting.js"></script>
 <script type="text/javascript">
 if ('<%=hidXCategories1%>' == '') {
 execScript();
 }
 var firstSeries = '<%=hidValues1%>';
 var secondSeries = '<%=hidValues2%>';
 var xAxis = '<%=hidXCategories1%>';
 var categories = new Array();
 categories = xAxis.split(',');
 var seriesOne = new Array();
 seriesOne = firstSeries.split(',');
 for (var i = 0; i < seriesOne.length; i++) {
 seriesOne[i] = parseInt(seriesOne[i]);
 }
 var seriesTwo = new Array();
 seriesTwo = secondSeries.split(',');
 for (var i = 0; i < seriesTwo.length; i++) {
 seriesTwo[i] = parseInt(seriesTwo[i]);
 }
 $(document).ready(function () {
 chart = new Highcharts.Chart({
 chart: {
 renderTo: 'container',
 defaultSeriesType: 'line'
 },
 title: {
 text: 'ทดสอบ Line Chat'
 },
 xAxis: {
 categories: categories
 },
 yAxis: {
 title: {
 text: 'แกน Y'
 }
 },
 series: [
 { name: 'ข้อมูลที่ 1', data: seriesOne },
 { name: 'ข้อมูลที่ 2', data: seriesTwo }
 ]
 });
 });
 </script>
 </head>
 <body>
 <form id="form1" runat="server">
 <h4>Display line chart using Highcharts in Asp.net</h4>
 <asp:DropDownList ID="DropDownList1" runat="server">
 <asp:ListItem>2014</asp:ListItem>
 <asp:ListItem>2015</asp:ListItem>
<asp:ListItem>2016</asp:ListItem>
 <asp:ListItem>2017</asp:ListItem>
</asp:DropDownList>
 <asp:Button ID="Button1" runat="server" Text="Button" /&gt
 <br />
 <div>
 <div id="container" style="width: 500px; height: 500px"></div>
 </div>
 </form>
 </body>
 </html>



- ไฟล์นามสกุล .aspx.vb ป้อนคำสั่งดังนี้

Imports System.Data
Imports System.Data.SqlClient
Public Class highcharts
    Inherits System.Web.UI.Page
    Private dsSeries As New DataSet()
    Public hidValues1 As String
    Public hidValues2 As String
    Public hidXCategories1 As String
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Public Function BindData() As DataSet
        Dim connString As String = ConfigurationManager.ConnectionStrings("SQLConnect").ToString()
        Dim con As New SqlConnection(connString)
        Dim cmd As New SqlCommand()
        cmd.Connection = con
        cmd.CommandText = "SELECT symbol,value1,value2 FROM tblTicker WHERE year ='" & DropDownList1.SelectedValue & "'"
        Dim da As New SqlDataAdapter(cmd)
        Try
            Dim ds As New DataSet()
            da.Fill(ds)

            Return ds
        Catch ex As Exception
            Throw ex
        End Try
    End Function

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim ri As Integer = 0
        'If Not IsPostBack Then
        dsSeries = BindData()
        'End If
        If dsSeries Is Nothing Then
            Return
        End If
        For Each dr As DataRow In dsSeries.Tables(0).Rows
            hidXCategories1 = (hidXCategories1 & dr("symbol").ToString()) + ","
            hidValues1 = (hidValues1 & dr("value1").ToString()) + ","
            hidValues2 = (hidValues2 & dr("value2").ToString()) + ","
            ri += 1
        Next
        If ri > 0 Then
            hidXCategories1 = Left(hidXCategories1, hidXCategories1.Length - 1)
            hidValues1 = Left(hidValues1, hidValues1.Length - 1)
            hidValues2 = Left(hidValues2, hidValues2.Length - 1)
        End If
    End Sub
End Class

- ไฟล์ web.config

 <configuration> 
 <system.web> 
 <compilation debug="true" strict="false" explicit="true" targetFramework="4.5" /> 
 <httpRuntime targetFramework="4.5" /> 
 </system.web> 
 <connectionStrings> 
 <add name="SQLConnect" connectionString="server=ชื่อServer;database=ชื่อDatabase;uid=sa;password=1234;" /> 
 </connectionStrings> 
 </configuration>

ให้ทำการกำหนด ชื่้อ Server, ชื่อ Database , ชื่อ User และรหัสผ่าน ให้ตรงกับที่กำหนดใน SQL Server

ตัวอย่างผลลัพธ์

























สวัสดีมีกราฟใช้งาน


"What you will become after reading this article ?"

Copyright(c) 2007 - 2016 by Kasem Kamolchaipisit.