Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > สอบถามหน่อยครับโปรเจคเกี่ยวกับC#จะใช้ฐานข้อมูลตัวไหนดี



 

สอบถามหน่อยครับโปรเจคเกี่ยวกับC#จะใช้ฐานข้อมูลตัวไหนดี

 



Topic : 085865

Guest




สอบถามหน่อยครับคือตอนนี้ผมตองการจะทำโปรเจคเกี่ยวกับระบบจัดการโดยใช้ C# VS2010 เขียนและทำ report โดย Cystal report
ฐานข้อมูลที่เลือกใช้คือ mysql
โดยเครื่องที่จะใช้งานโปรแกรมจะต้องลงฐานข้อมูลตลอด ซึ่งจะสามารถทำงานแบบออฟไลน์ได้ (ทำงานเครื่องต่อเครื่อง)

แต่ติดปัญหาตรงที่ว่าตอนจะติดต่อกับ mysql เราจะทำยังไงดีครับ เพราะเวลา user ใช้งานต้องลง mysql เองแล้วพวกส่วนติดต่อฐานข้อมูลตรงตั้งค่า config root password อะไรพวกนี้ อะครับถ้า user เปลี่ยนมันตอนลงmysql มันก็คอนเน็กไม่ได้

มีวิธีแบบว่าทำ เหมือน php ไหมครับที่มีไฟล์ config.php ไว้แก้ไขตรงส่วนนั้นได้อะครับแนะนำด้วยครับ



Tag : .NET, MySQL, Win (Windows App), C#, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-10-25 13:15:02 By : Kanin View : 1085 Reply : 1
 

 

No. 1

Guest


เป็นผมจะเขียนเป็น config.xml แหละ

เริ่มแรกถ้าไม่มีก็ให้โปรแกรมสร้างไฟล์ ส่วนค่าก็ให้มัน generate

เป็น default value ออกมา จะเรียก connection หรืออะไรก็เรียกผ่าน xml เอา

จะแก้ก็แก้ที่ xml

การสร้าง xml ก็ทำให้หลายวิธีเลย จะสร้างจาก xmldocument ก็ได้ เห็นภาพโคางสร้างง่ายดี

หรือจะใช้ xmlwriter ก็ได้ ซึ่งจะเหมาะกับการเขียน xml ไฟล์ใหญ่ๆ

ส่วนเวลาเรียกใช้ หรือ update ผมจะใช้ linq

ง่ายๆ และสะดวกเหมือนการ query, update ฐานข้อมูล

เขียนด้วย xmldocument
        public bool WriteInfo()
        {
            XmlDocument info = new XmlDocument();

            if (File.Exists(string.Format("{0}\\xml\\info.xml", System.Windows.Forms.Application.StartupPath)))
            {
                File.Delete(string.Format("{0}\\xml\\info.xml", System.Windows.Forms.Application.StartupPath));
            }

            XmlDeclaration xmldecl = info.CreateXmlDeclaration("1.0", "UTF-8", null);
            info.AppendChild(xmldecl);

            XmlElement dataroot = info.CreateElement("dataroot");
            dataroot.SetAttribute("xmlns:od", "urn:schemas-microsoft-com:officedata");
            dataroot.SetAttribute("generated", DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"));
            info.AppendChild(dataroot);

            XmlElement newElem = info.CreateElement("FileInfo");
            info.DocumentElement.AppendChild(newElem);

            XmlElement FileName = info.CreateElement("FileName");
            FileName.InnerText = fileName;
            newElem.AppendChild(FileName);

            XmlElement ReadExcel = info.CreateElement("ReadExcel");
            ReadExcel.InnerText = "True";
            newElem.AppendChild(ReadExcel);

            XmlElement CheckData = info.CreateElement("CheckData");
            CheckData.InnerText = "False";
            newElem.AppendChild(CheckData);

            XmlElement CheckLocation = info.CreateElement("CheckLocation");
            CheckLocation.InnerText = "False";
            newElem.AppendChild(CheckLocation);

            XmlElement CheckProduct = info.CreateElement("CheckProduct");
            CheckProduct.InnerText = "False";
            newElem.AppendChild(CheckProduct);

            XmlElement CheckSection = info.CreateElement("CheckSection");
            CheckSection.InnerText = "False";
            newElem.AppendChild(CheckSection);

            XmlElement CheckName = info.CreateElement("CheckName");
            CheckName.InnerText = "False";
            newElem.AppendChild(CheckName);

            info.Save(string.Format("{0}\\xml\\info.xml", System.Windows.Forms.Application.StartupPath));

            return true;
        }


เขียนด้วย xmlwriter (ค่อยๆ ส่งมาเขียนทีละ 1000 record)
        public bool WriteCircuit(int StartIndex)
        {
            byte[] endtag = System.Text.Encoding.UTF8.GetBytes("</dataroot>");
            XmlTextWriter writer;

            bool fileExist = File.Exists(string.Format("{0}\\xml\\circuit.xml", System.Windows.Forms.Application.StartupPath));

            if (fileExist)
            {
                FileStream fileStream = File.OpenWrite(string.Format("{0}\\xml\\circuit.xml", System.Windows.Forms.Application.StartupPath));
                fileStream.Seek(-endtag.Length, SeekOrigin.End);

                writer = new XmlTextWriter(fileStream, Encoding.UTF8);
            }
            else
            {
                writer = new System.Xml.XmlTextWriter(string.Format("{0}\\xml\\circuit.xml", System.Windows.Forms.Application.StartupPath), System.Text.Encoding.UTF8);
                writer.WriteStartDocument();
                writer.WriteStartElement("dataroot");
                writer.WriteAttributeString("xmlns", "od", null, "urn:schemas-microsoft-com:officedata");
                writer.WriteAttributeString("generated", DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"));
            }

            writer.Indentation = 1;
            writer.IndentChar = Convert.ToChar(" ");
            writer.Formatting = Formatting.Indented;

            for (int i = StartIndex; i < StartIndex + 1000; i++)
            {
                if (i < circuitData.Rows.Count)
                {
                    System.Data.DataRow newCircuit = circuitData.Rows[i];

                    writer.WriteStartElement("Circuit");

                    writer.WriteElementString("InvoiceDate", invoiceDate.ToShortDateString());
                    writer.WriteElementString("CircuitID", newCircuit["CircuitID"].ToString());
                    writer.WriteElementString("ProductName", newCircuit["ProductName"].ToString());
                    writer.WriteElementString("ProductCode", newCircuit["ProductCode"].ToString());
                    writer.WriteElementString("CustomerName", newCircuit["CustomerName"].ToString().Trim());
                    writer.WriteElementString("CustomerCode", newCircuit["CustomerCode"].ToString());
                    writer.WriteElementString("CustomerType", newCircuit["CustomerType"].ToString());
                    writer.WriteElementString("InstallDate", (newCircuit["InstallDate"] != DBNull.Value) ? Convert.ToDateTime(newCircuit["InstallDate"]).ToShortDateString() : string.Empty);
                    writer.WriteElementString("Origin", newCircuit["Origin"].ToString());
                    writer.WriteElementString("Destination", newCircuit["Destination"].ToString());
                    writer.WriteElementString("Amount", newCircuit["Amount"].ToString());
                    writer.WriteElementString("Discount", newCircuit["Discount"].ToString());
                    writer.WriteElementString("Balance", newCircuit["Balance"].ToString());
                    writer.WriteElementString("Vat", newCircuit["Vat"].ToString());

                    writer.WriteEndElement();
                }
            }

            if (!fileExist)
            {
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
            else
            {
                writer.Flush();
                writer.BaseStream.Write(endtag, 0, endtag.Length);
            }

            if (writer != null)
            {
                writer.Flush();
            }

            if (writer.WriteState != WriteState.Closed)
            {
                writer.Close();
            }

            return true;
        }


เวลาเรียกใช้ก็ linq
Uri infoPath = new Uri(string.Format("{0}\\xml\\info.xml", System.Windows.Forms.Application.StartupPath));

XElement xInfo = (from x in XElement.Load(infoPath.LocalPath).Elements("FileInfo")
          select x).First();


เวลา update
        private void UpdateInfo()
        {
            Uri infoPath = new Uri(string.Format("{0}\\xml\\info.xml", System.Windows.Forms.Application.StartupPath));

            try
            {
                XElement xInfo = XElement.Load(infoPath.LocalPath);

                var info = from xi in xInfo.Elements("FileInfo")
                           select xi;

                foreach (XElement xe in info)
                {
                    xe.Element("CheckData").ReplaceWith(new XElement("CheckData", "True"));
                    xe.Element("CheckLocation").ReplaceWith(new XElement("CheckLocation", "True"));
                    xe.Element("CheckProduct").ReplaceWith(new XElement("CheckProduct", "False"));
                    xe.Element("CheckSection").ReplaceWith(new XElement("CheckSection", "False"));
                    xe.Element("CheckName").ReplaceWith(new XElement("CheckName", "False"));
                }

                xInfo.Save(infoPath.LocalPath);
            }
            catch { }
        }







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-25 14:06:51 By : ห้ามตอบเกินวันละ 2 กระทู้
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามหน่อยครับโปรเจคเกี่ยวกับC#จะใช้ฐานข้อมูลตัวไหนดี
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่