Thursday, July 28, 2011

Setup and Deployment SQL EXPRESS


บทความนี้ขอเป็นการตอบคำถามเพื่อนสมาชิก Greatfriends ครับ
เข้าใจว่าผู้ตั้งคำถามต้องการ Deploy แอพพลิเคชันไปรันบนเครื่องอื่นโดยใช้ Database บน SQL Express 2005 ให้รันเฉพาะบนเครื่องนั้นๆ โดยไม่มีการติดต่อกับเครื่องใดๆ
จาก: ConnectionString ที่ฝังในโค้ด[REPLY #4 (85736)]นี้:
Public Shared strConn As String = "Data Source = .SQLEXPRESS;Integrated Security=SSPI; Persist Security Info=False;Initial Catalog=PJWMS;"
เห็นว่าเป็นการ เลือกการติดต่อแบบ Microsoft SQL Server ให้เปลี่ยนการติดต่อเป็นแบบ attach database ดังที่จะกล่าวดังต่อไปนี้:
สมุติว่าเป็นฐานข้อมูล ของ Northwind ให้เราทำการ Detach ออกจาก Server ของ SQL Server ก่อนดังรูปที่ 1 และรูปที่ 2: เพื่อว่าเราสามารถทำการ copy ฐานข้อมูล Northwind ไปไว้บน (local) โปรเจ็กต์ของเราเพราะเราจะใช้การเชื่มต่อแบบแนบไฟล์ฐานข้อมูลไปกับแอพพลิเคชันของเรา [จากคำถาม ให้เปลี่ยนเป็นฐานข้อมูล PJWMS]

1 2
รูปที่ 1:                                                                รูปที่ 2:

จากนั้นเราเข้าไปที่พาธ: C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataเพื่อทำการ copy ฐานข้อมูล Northwind ดังรูปที่ 3: ไปไว้ที่อื่น ในที่นี้ขอ เอาไปวางใว้ที่พาธ C:
3  
รูปที่ 3:
ลากไฟล์ฐานข้อมูลเข้าไปในโปรเจ็กต์ดังรูปที่ 4:  มันจะสร้าง Data Source ให้ดังรูปที่ 5:
x3 x4
รูปที่ 4:                                                                            รูปที่ 5:

จะเห็นว่าไฟล์ฐานข้อมูลแนบอยู่กับโปรเจ็กของเรา ดังรูปที่ 6:
x1
รูปที่ 6:

ถ้าเราไม่ใช้วิธี คลิกค้าง-ลาก-วาง ใช้การ Add New Item ได้เช่นกัน ดังรูปที่ 7 ถึงรูปที่ 11
7 8
รูปที่ 7:                                  รูปที่ 8:

9 10
รูปที่ 9:                                 รูปที่ 10:
11
รูปที่ 11:

ผลที่ได้เหมือนกัน ดังรูปที่ 12: ทำการ Build โปรเจ็กต์หนึ่งครั้งแล้วเข้าไปดูใน Bin เราจะเห็นไฟล์ฐานข้อมูลแนบไปกับไฟล์ .exe ของเรา ดังรูปที่ 13:
x1 x2
รูปที่ 12:                           รูปที่ 13:

connectionString ที่ได้: ดังรูปที่ 14 และสามารถเปิดดูได้ในไฟล์ config ชื่อ app.config
12
รูปที่ 14:  app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication3.Properties.Settings.NORTHWNDConnectionString"
            connectionString="Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|NORTHWND.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

การ Deploy แอพพลิเคชัน
ให้สร้างโปรเจกต์ Setup and Deployment ดังรูปที่ 15:
13
รูปที่ 15:

รูปที่ 16 – 17 กด Next จะได้โปรเจ็กต์ Setup มาหนึ่งโปรเจ็กต์ ดังรูปที่ 18:
14 15
รูปที่ 16:                               รูปที่ 17:      
      
โปรเจ็กต์ Setup and Deployment ชื่อ Setup3 ดังรูปที่ 18:
a1
รูปที่ 18: 

เราทำการแนบ ตัว SQL Server EXPRESS ไปกับตัว setup ของเราด้วย เพื่อว่าเครื่องที่ยังไม่มีโดยทำตามรูปที่ 19: โดยติกเลือก Download prerequisites from the same location as my application เป็นการเลือก package ติดตั้งของ SQL EXPRESS จากไฟล์ setup ของเราเอง
16
รูปที่ 19:

จากนั้นทำการ Build โปรเจ็กต์ Setup3 แล้วเข้าไปตรวจสอบใน Folder Debug เราจะเห็นสรรพสิ่งที่เราต้องการดังรูปที่ 20:
17

รูปที่ 20:

การติดตั้งทำโดยคลิก ไฟล์ Setup ในรูปที่ 20:

ขอให้โชคดี:

No comments:

Post a Comment