VB.NET การติดต่อฐานข้อมูลโดยอ่านและเขียนค่าการเชื่อมต่อลงไฟล์ ini file
ต้องเป็น ini file เลยหรือเปล่าครับ เพราะของ dotnet 2005 ขึ้นไปมันจะมี config ให้ใช้ได้เลย โดยชื่อไฟล์ config จะเป็นชื่อเดียวกับ project นามสกุลไฟล์เป็น .config อ่ะครับ ข้างในจะอยู่ในรูป xml format น่ะครับ
วิธีเรียกใช้ตอนเขียนโค้ดก็แค่นี้ครับ เรียกใช้ได้ตลอดเหมือนตัวแปรตัวนึงครับ
Code (C#)
string dbName="";
dbName = WinAppTest.Properties.Settings.Default.Database.ToString();
ตัวอย่างผมตั้งชื่อโปรเจ็คว่า WinAppTest ก็จะได้ไฟล์ WinAppTest.exe.config
ตัวอย่างข้อมูลในไฟล์
WinAppTest.exe.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WinAppTest.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<WinAppTest.Properties.Settings>
<setting name="Server" serializeAs="String">
<value>127.0.0.1</value>
</setting>
<setting name="Database" serializeAs="String">
<value>TestDB</value>
</setting>
<setting name="UserName" serializeAs="String">
<value>admin</value>
</setting>
<setting name="Password" serializeAs="String">
<value>admin</value>
</setting>
</WinAppTest.Properties.Settings>
</applicationSettings>
</configuration>
** แต่ถามว่าจะเขียนติดต่อใช้เป็นไฟล์ ini ได้ไม๊ ก็ตอบว่าได้นะครับแต่ก็ต้องเขียน function เองเรียกใช้ API เองน่ะครับ
ก็จะมัวไปเขียนเพื่อให้ใช้ได้ทั้งๆ ที่มีของใหม่ให้ใช้อยู่แล้วทำไมล่ะเนาะ
Date :
2010-11-17 15:01:18
By :
salapao_codeman
ผมว่าจุดประสงค์การทำงานมันต่างกันนะครับ
กรณีทำแบบคุณว่า เวลาผมเปลี่ยนค่า database ผมต้องแก้ค่าในโปรเจคใหม่ใช่ไหมครับ แล้วทำ exe ใหม่ ผมเข้าใจถูกเปล่า ฉนั้นถ้าผมมีเครื่องลูก 100 เครื่อง ผมต้องลงใหม่ทุกเครื่องถูกไหมครับ นอกจากาว่าไฟล์ xml นั่นสามารถแก้ได้โดยไม่ต้องแก้โปรแกรม
ถ้ากรณีของผมหากมีการเปลี่ยนค่า database ก็สามารถเปลี่ยนแปลงค่าได้เลยได้เลยโดยที่ไม่ต้องมาแก้ค่าในโปรแกรมเพราะค่าถูกเก็บใน ini file ของแต่ละเครื่องอยู่แล้ว
ผิดพลาดประการใดแนะนำด้วยครับ
Date :
2010-11-17 16:31:38
By :
narubet
เอ่อ ผมเสนอตัวเลือกใหม่ที่มันมีพร้อมให้ใช้อยู่แล้วใน .Net2005 ขึ้นไปอ่ะครับ
มันเป็น text file ธรรมด๊า ธรรมดา ครับ แก้ไขด้วย notepad หรือ editor ใดๆ ก็ได้ครับ เหมือนเช่นเดียวกันกับ ini file ครับ
แล้วที่เริ่มถามมาคือ "ต้องการทำ winapp ให้มีหน้าของการตั้งค่าเชื่อมต่อฐานข้อมูลโดยเขียนข้อมูลลงไฟล์ ini file " คำถามนี้ใช่ป่ะครับแปลว่าโปรแกรมต้องการแก้ไขโปรแกรม ซึ่งแก้ไขแล้วก็ต้อง compile เป็น exe ใหม่ แล้วเอา exe ไปเปลี่ยน ไม่ใช่เหรอครับ
อธิบายอีกรอบ
สิ่งที่คุณถาม ต้องการอยากได้คือ
1.หน้าของการตั้งค่าเชื่อมต่อฐานข้อมูล ** เน้นตรงนี้ว่าเป็นสิ่งที่คุณขอมา ซึ่งก็ต้องแก้โปรแกรมอยู่ดี
2. save ข้อมูลของข้อ 1 ลง ini file
วิธีคือ
1. สร้าง form ใหม่ สมมุติตั้งเป็น formDBconfig แล้วคุณก็วาดหน้าตาอย่างที่ต้องการลงไป
2. หลังจากนั้นก็จะมีปุ่ม save config เพื่อที่จะ save ลงไฟล์ (ในที่นี้คุณกำหนดให้เป็น ini file)
ทางเลือกของการ save file
- ใช้วิธีการเขียน save file ลงตรงๆ เลย เป็นการเปิด/ปิด file ปกติ
- ใช้วิธีการเขียนเรียก Windows API ที่เป็นตัวจัดการ เรื่องของ ini file ให้ (ตรงนี้ไม่แน่ใจว่าเคยใช้หรือรู้จัก Window API มาก่อนหรือเปล่า)
ซึ่งค่าต่างๆ ที่คุณทำขึ้นมาคุณต้องเอาไปใส่ตัวแปรใช่ป่ะครับ เช่น
string dbName="";
string dbUsername ="";
string dbPassword ="";
string dbServerName ="";
แล้วก็จะกำหนดค่าตัวแปรเหล่านั้นให้เท่ากับ ค่าใน form แล้วเอาตัวแปรไปใช้ เป็นอันเสร็จ ใช่หรือเปล่าครับ
ทีนี้วิธีที่ผมแนะนำไปน่ะคือคุณสามารถตัดตอนตรงนี้ไปได้เลย ไม่ต้องไปเขียนเพิ่มให้ยุ่งยาก
ทางเลือกของการ save file
- ใช้วิธีการเขียน save file ลงตรงๆ เลย เป็นการเปิด/ปิด file ปกติ
- ใช้วิธีการเขียนเรียก Windows API ที่เป็นตัวจัดการ เรื่องของ ini file ให้
ส่วนวิธีการสร้างคุณแค่ทำตามนี้ก็จะได้ไฟล์ .config ออกมาแล้วครับ แล้วก็เอา formDBConfig มามาเรียกใช้ค่าแค่นั้น
เลือกเมนู project แล้วเลือกรายการล่างสุด ซึ่งจะเป็นการเปิด properties ของ project ครับ
แล้วก็เลือกที่เมนูด้านซ้ายเป็น settings แล้วก็ใส่ค่าตามรูปครับ
หลังจาก save ให้ไปดูที่ folder ที่มี exe อยู่ (ส่วนใหญ่จะเป็น folder debug แต่ของผมพอดีเปลี่ยนค่าการ compile เป็น release แล้วเลยอยู่ที่ folder release น่ะครับ)
ส่วนถ้าจะเอาวิธีการติดต่อ Windows API ของ .Net2008 เดี๋ยวผมเอามาลงอีกที
Date :
2010-11-17 17:35:34
By :
salapao_codeman
.NET มันมี .Config มาให้น่ะครับ ใส่ที่ตัวนี้ได้เลยครับ ถ้า ASP.NET จะเป็น Web.Config ส่วน App จะเป็นชื่อ [App-Name].Config ครับ
Date :
2010-11-17 17:48:38
By :
webmaster
แล้วที่เริ่มถามมาคือ "ต้องการทำ winapp ให้มีหน้าของการตั้งค่าเชื่อมต่อฐานข้อมูลโดยเขียนข้อมูลลงไฟล์ ini file " คำถามนี้ใช่ป่ะครับแปลว่าโปรแกรมต้องการแก้ไขโปรแกรม ซึ่งแก้ไขแล้วก็ต้อง compile เป็น exe ใหม่ แล้วเอา exe ไปเปลี่ยน ไม่ใช่เหรอครับ
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ตรงนี้ผมไม่ได้หมายความว่าต้องการแก้ไขโปรแกรมครับ ผมหมายถึงถ้าหากมีการเปลี่ยนชื่่อ database หรือ ไอพี database เปลี่ยนไป
ในกรณีของผมคือสามารถแก้ที่หน้าตั้งค่าการติดต่ฐานข้อมูลได้เลยโดยไม่ต้อง compile เป็น exe ใหม่
แต่ถ้ากรณีที่คุณเสนอมาผมต้อง compile เป็น exe ใหม่ หรือเปล่า
หรือว่าตอนติดตั้งโปรแกรมมันจะมีไฟล์นามสกุล .config ที่คุณว่าอยู่ในเครื่องสามารถแก้ได้เลยหากมีการเปลี่ยนไอพี database หรือเปลี่ยนชื่อ database
Date :
2010-11-17 19:09:30
By :
narubet
ที่เริ่มอธิบายมาตั้งแต่ทีแรกอ่ะ ก็พยายามนำเสนอของใหม่ ซึ่งคุณจะใช้หรือไม่ใช้ แก้ไม่แก้ก็แล้วแต่น่ะครับ ไม่ใช้กับตัวนี้แค่ให้รู้ไว้ว่ามันมีแบบใหม่ให้ใช้ไปใช้กับ project ใหม่ก็ได้เหมือนกันนี่
แล้วครั้งที่สองก็มีรูปแสดงถึงตัวไฟล์ แล้วก็บอกว่าเปิดด้วย notepad หรือ editor ใดๆ ก็ได้ไปแล้ว
ส่วนเรื่องการติดตั้งว่าจะมีไฟล์นี้ไปด้วยหรือเปล่านั้น เช่นเดียวกับแบบ ini นั่นแหละครับ ของ ini คุณต้อง add ไฟล์ ini เพิ่มเข้าในตอนที่ทำชุดติดตั้งไปด้วยถูกไม๊ครับ
ที่คุณ Mr.Win เค้าสรปให้น่ะ ถูกแล้ว ใจเย็นๆ แล้วลองอ่านดูดีๆ
Date :
2010-11-18 14:10:29
By :
salapao_codeman
ขอบคุณมากครับ เพิ่งหัดเล่นครับผม ผิดพลาดประการใดขออภัยด้วยครับ
Date :
2010-11-19 08:40:42
By :
narubet
ตอนที่ Create New Project มันก็ไฟล์ต่าง ๆ มาให้ครับ ถ้าไม่มีก็สามารถ Add เข้ามาได้ครับ และพวกไฟล์ .Config ตัว App จะรู้จักทันที และสามารถเรียก Tag/ค่า ในนั้นใช้ได้ทันทีเช่นเดียวกันครับ
ตัวอย่าง ASP.NET Web Project ครับ มันมีไฟล์ web.config ให้ใช้ตัวนี้แทนครับ และอีกอย่างไฟล์นี้มันมี Security ในตัวครับ คือไม่สามารถทำการเรียกหรือเปิดไฟล์ตัวนี้ได้นอกจากตัว .NET ทำการเรียกครับ
Date :
2010-11-19 08:50:31
By :
webmaster
Load balance : Server 03