ที่ต้องติดตั้ง Version ของ Express เป็นเพราะผมใช้คำสั่งนี้หรอครับ
(ผมยังไม่ได้ลองติดตั้งนะครับ)
ผมอยากเอาโปรแกรมไปติดตั้งเครื่องอื่นโดยที่ไม่ต้องติดตั้งอะไรเพิ่มเติมนอกจาก .net 4.x อะครับ
Code (VB.NET)
Public strcon As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MLDB.mdf;Integrated Security=True;Connect Timeout=5;User Instance=True"
connectionstring ของ localdb แบบไม่ใส่ password
ตัวอย่างที่ 1 แบบทั่วไป file จะอยู่ที่ profile folder ของ current user
Data Source=(LocalDB)\v11.0;Initial Catalog=foo;Integrated Security=True;Pooling=False
ตัวอย่างที่ 2 แบบกำหนด folder
Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\foo.mdf;Integrated Security=True
วิธีสร้างให้เปิด server explorer ขึ้นมาแล้ว click ขวาที่ Data Connection >> Create New SQL Database ..
จากนั้นจะมีหน้าต่างดึ๋งขึ้นมาดังรูป แล้วกำหนด server name เป็น (LocalDB)\v11.0
และกำหนดชื่อฐานข้อมูลตามลงไป จากนั้นระบบจะสร้างไฟล์ให้อัตโนมัติ
แล้ว file ฐานข้อมูลที่ว่าอยู่ที่ไหน ? คือถ้าคุณไม่ได้กำหนด folder อะไรยังไง
(ถาม:กำหนดที่ไหนอะ เห็นจะมีเลยชะมะ ตอบ:คือถ้าใช้ T-SQL มันกำหนดได้นะแจ้ะ)
จะถูกจัดเก็บไว้ที่ profile folder ของ current user
เอางี้แบบ windows explorer ขึ้นมาแล้วแปะ %USERPROFILE% ที่ address bar
จากนั้นก็กด enter ก็เจอแบ้วนะครัช
1.ติดตั่ง Localdb ตาม Version ที่ใช้พัฒนาเวลาเอาไปลงเครื่องไหนให้ลง Localdb ที่ตรง Version
2.ต้องสร้าง instance ก่อนนะครับ
3. สร้าง Function มา 1 ตัว Code (VB.NET)
Private Sub DoProcess(activity As String)
Try
'dialog = New OpenFileDialog()
'dialog.Title = "Locate SqlLocalDB.exe"
''dialog.FileName = "SqlLocalDB.exe"
'dialog.Filter = "Executable files (*.exe)|*.exe|All files (*.*)|*.*"
'dialog.FilterIndex = 1
'dialog.InitialDirectory = "C:\Program Files\Microsoft SQL Server\110\Tools\Binn"
' If dialog.ShowDialog() = DialogResult.OK Then
Dim command As String = """" + "SqlLocalDB.exe" & """"
Dim info As New ProcessStartInfo(command, (" " & activity & " ") + "ชื่อ DATABASE ")
Dim p As New Process()
p.StartInfo = info
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.RedirectStandardError = True
p.Start()
p.WaitForExit()
Dim reader As StreamReader = p.StandardOutput
Dim output As String = reader.ReadToEnd()
reader.Close()
If output.Length = 0 Then
reader = p.StandardError
Dim [error] As String = reader.ReadToEnd()
reader.Close()
MsgBox([error] & " ไม่สามารถสร้างการติดต่อกับ Database ได้", MsgBoxStyle.Critical)
Else
MsgBox(output & " สร้างการติดต่อกับ Database เรียบร้อยแล้ว", MsgBoxStyle.Information)
End If
' End If
Catch ex As Exception
MessageBox.Show("ไม่สามารถเชื่อมต่อได้ กรุณาลองปิดโปรแกรมแล้วทำการสร้างการเชื่อมต่อใหม่อีกครั่ง", "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
'Process.Start(Application.StartupPath & "\Point Of Sale Project.exe")
'Application.ExitThread()
End Try
End Sub