Array
(
)

Redirecionar banco de dados via arquivo .ini

Sigrids Lima
   - 25 jul 2012

Pessoal tenho uma aplicação Servidor e Cliente e gostaria de alterar a string de conexao via arquivo.ini, mais nao estou conseguindo, seguir este exemplo:
http://www.daniweb.com/software-development/csharp/code/217092/auto-create-database-connection-string-using-ini-by-c
Estou conseguindo alterar o arquivo ini, porem como consigo aderir na minha aplicação em rede este arquivo para poder ser alterar a string

Joel Rodrigues
   - 25 jul 2012

Como se trata de uma aplicação .NET, sugiro que use as configurações do projeto (Settings) no lugar do arquivo INI. Veja este link: http://msdn.microsoft.com/pt-br/library/aa730869(v=vs.80).aspx

É mais fácil de lidar com as Settings que com o arquivo INI.

Sigrids Lima
   - 27 jul 2012

Joel conseguir alterar essa classe para gerar um arquivo .config, porem quando e gerado o arqvo xml esta aparecendo colchetes [] no inicio do config, ja tentei de varias formas para remover mais nao conseguir. Esse codigo e baseado na contrução de arquivo .ini

using System;
using System.Resources;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.IO;
using System.Data;
namespace www.treaple.com
{
public class DBBase
{
public string hostName = null;
public string baseName = null;
public string loginName = null;
public string passWord = null;
public DBBase()
{
}
}
public class DBConnectioin : DBBase
{
private INI config;
public static string conStr = null;
public DBConnectioin()
{
config = new INI();
}
private void Read()
{
config.GetPara();
this.hostName = config.hostName;
this.baseName = config.baseName;
this.loginName = config.loginName;
this.passWord = config.passWord;
}
public void Write()
{
config.hostName = this.hostName;
config.baseName = this.baseName;
config.loginName = this.loginName;
config.passWord = this.passWord;
config.SetPara();
}
public void GetConString()
{
this.Read();
conStr = workstation id= + this.hostName + ;data source= + this.hostName + ;initial catalog= + this.baseName + ;user id= + this.loginName + ;password= + this.passWord;
}
}
public class INI : DBBase
{
protected string path = null;
protected string fileName = Aplicacao.config;
[DllImport(kernel32)]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport(kernel32)]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
public INI()
{
this.path = Directory.GetCurrentDirectory();
}
private bool Write(string section, string key, string value)
{
try
{
WritePrivateProfileString(section, key, value, this.path + \\ + this.fileName);
return true;
}
catch
{
return false;
}
}
private string Read(string section, string key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(section, key, , temp, 255, this.path + \\ + this.fileName);
return temp.ToString();
}
public void GetPara()
{
this.hostName = Read(, HostName);
this.baseName = Read(, baseName);
this.loginName = Read(, LoginName);
this.passWord = Read(, PassWord);
}
public void SetPara()
{
Write(, HostName, this.hostName);
Write(, baseName, this.baseName);
Write(, LoginName, this.loginName);
Write(, PassWord, this.passWord);
}
}
}

Gostaria de remover estas aspas para ver se daria certo

Write(, HostName, this.hostName);