using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using System.Xml;
using System.Reflection;
namespace Barcodes
{
    public partial class frmConnectionSetup
: Form
    {
        public frmConnectionSetup()
        {
           
InitializeComponent();
        }
        private void
frmConnectionSetup_Load(object sender, EventArgs e)
        {
        }
        private void
btnOK_Click(object sender, EventArgs e)
        {
            try
            {
               
if (ValidData() == true)
               
{
                   
StringBuilder Con = new StringBuilder("server=");
                   
Con.Append(txtServerName.Text);
                   
Con.Append(";database=");
                   
Con.Append(txtDatabase.Text);
                   
Con.Append(";uid=");
                   
Con.Append(txtUsername.Text);
                   
Con.Append(";pwd=");
                   
Con.Append(txtPassword.Text);
                   
string strCon = Con.ToString();
                   
// updateConfigFile(strCon);
                   
WriteConnection("ConnectionString",
strCon);
                   
SqlConnection Db = new SqlConnection();
                   
ConfigurationManager.RefreshSection("connectionStrings");
                   
Db.ConnectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();
                   
MessageBox.Show("Connection changed successfully!", "Ken Cloud", MessageBoxButtons.OK,
MessageBoxIcon.Information);
               
}
            }
            catch
            {
            }
        }
        public void
updateConfigFile(string con)
        {
            XmlDocument XmlDoc = new
XmlDocument();
            try
            {
               
XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
               
foreach (XmlElement
xElement in XmlDoc.DocumentElement)
               
{
                   
if (xElement.Name == "connectionStrings")
                   
{
                        foreach (XmlNode node in xElement.ChildNodes)
                        {
                            if (node.Attributes[0].Value.Equals("ConnectionString"))
                            {
                               
node.Attributes[1].Value = con;
                            }
                            // xElement.FirstChild.Attributes[1].Value = con;
                        }
                   
}
               
}
               
//  
ConfigurationManager.ConnectionStrings.Remove(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
               
//System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
               
XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
               
ConfigurationManager.RefreshSection("connectionStrings");
                string[]
pathSplit = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile.Split('\\');
               
//path = path.Substring(0, path.Length -
path.StartsWith("bin").ToString().Length - 4);
               
string path = "";
               
foreach (string
item in pathSplit)
               
{
                   
if (item.ToLower() != "bin")
                        path += item + "\\";
                   
else break;
               
}
               
path += "App.config";
               
XmlDoc.Load(path);//("App.config");
            }
            catch (Exception
ex)
            {
            }
        }
       
# region
Validate Method
        private bool
ValidData()
        {
            if (txtServerName.Text == "")
            {
               
MessageBox.Show("Server name can't be blank.", "KenCloud", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
               
txtServerName.Focus();
               
return false;
            }
            if (txtDatabase.Text == "")
            {
               
MessageBox.Show("Database name can't be blank.", "KenCloud", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
               
txtDatabase.Focus();
               
return false;
            }
            if (txtUsername.Text == "")
            {
               
MessageBox.Show("User name can't be blank.", "KenCloud", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
               
txtUsername.Focus();
               
return false;
            }
            if (txtPassword.Text == "")
            {
               
MessageBox.Show("Password can't be blank.", "KenCloud", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
               
txtPassword.Focus();
               
return false;
            }
            return true;
        }
       
# endregion
       
#region For
Write connection
        public static void WriteConnection(string
key, string value)
        {
            // load config document for current assembly
            XmlDocument doc = loadConfigDocument();
            // retrieve appSettings node
            XmlNode node = doc.SelectSingleNode("//appSettings");
            if (node == null)
               
throw new
InvalidOperationException("appSettings section not found in config file.");
            try
            {
               
// select the 'add' element that contains the
key
               
XmlElement elem = (XmlElement)node.SelectSingleNode(string.Format("//add[@key='{0}']",
key));
               
if (elem != null)
               
{
                    // add value
for key
                   
elem.SetAttribute("value",
value);
               
}
               
else
               
{
                   
// key was not found so create the 'add'
element 
                   
// and set it's key/value attributes 
                   
elem = doc.CreateElement("add");
                   
elem.SetAttribute("key",
key);
                   
elem.SetAttribute("value",
value);
                   
node.AppendChild(elem);
              
 }
               
string[] pathSplit = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile.Split('\\');
               
string path = "";
               
foreach (string
item in pathSplit)
               
{
                   
if (item.ToLower() != "bin")
                        path += item + "\\";
                   
else break;
               
}
               
path += "App.config";
               
doc.Save(path);// (getConfigFilePath());
            }
            catch
            {
               
throw;
            }
        }
       
#endregion
       
#region For
Remove Previous Connection string
        public static void RemoveSetting(string
key)
        {
            // load config document for current assembly
            XmlDocument doc = loadConfigDocument();
            // retrieve appSettings node
            XmlNode node = doc.SelectSingleNode("//appSettings");
            try
            {
               
if (node == null)
                   
throw new
InvalidOperationException("appSettings section not found in config file.");
               
else
               
{
                   
// remove 'add' element with coresponding key
                   
node.RemoveChild(node.SelectSingleNode(string.Format("//add[@key='{0}']", key)));
                   
doc.Save(getConfigFilePath());
               
}
            }
            catch (NullReferenceException
e)
            {
               
throw new
Exception(string.Format("The key {0} does not exist.", key), e);
            }
        }
       
#endregion
       
#region made
the Appconfig file into XML Format
        private static XmlDocument loadConfigDocument()
        {
            XmlDocument doc = null;
            try
            {
               
doc = new XmlDocument();
               
doc.Load(getConfigFilePath());
               
return doc;
            }
            catch (System.IO.FileNotFoundException
e)
            {
               
throw new
Exception("No
configuration file found.", e);
            }
        }
       
#endregion
       
#region Find
the Path of The COnfiguration File
        private static string getConfigFilePath()
        {
            return Assembly.GetExecutingAssembly().Location
+ ".config";
        }
       
#endregion
    }
}
 
No comments:
Post a Comment