1、数据库配置xml,首先连接成功后会自动创建xml并保存到对应xml,如下
static string ConnPath = AppDomain.CurrentDomain.BaseDirectory + "ConnOrcle.xml";
声明xml名称,便于后续写入对应数据库参数
2、创建xml
/// <summary>
/// 创建XML节点
/// </summary>
/// <param name="ip"></param>
/// <param name="port"></param>
/// <param name="sid"></param>
/// <param name="user"></param>
/// <param name="pwd"></param>
public static void CreateXMLInform(string ip, string port, string sid, string user, string pwd)
{
XmlDocument xmlDoc = new XmlDocument();
XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmlDoc.AppendChild(xmlDecl);
XmlElement xe = xmlDoc.CreateElement("Conn");//创建一个Conn节点
XmlElement xc1 = xmlDoc.CreateElement("ConnIP");//IP
xc1.InnerText = ip;
xe.AppendChild(xc1);
XmlElement xc2 = xmlDoc.CreateElement("ConnPort");//端口
xc2.InnerText = port;
xe.AppendChild(xc2);
XmlElement xc3 = xmlDoc.CreateElement("ConnSid");//服务器名称
xc3.InnerText = sid;
xe.AppendChild(xc3);
XmlElement xc4 = xmlDoc.CreateElement("ConnUser");//用户名
xc4.InnerText = user;
xe.AppendChild(xc4);
XmlElement xc5 = xmlDoc.CreateElement("ConnPwd");//密码
xc5.InnerText = pwd;
xe.AppendChild(xc5);
xmlDoc.AppendChild(xe);
xmlDoc.Save(ConnPath);
}
3、声明连接类实体 ConnEntity
private string connIP;//ip地址
private string connPort;//端口
private string connSid;//服务器名称
private string connUser;//用户名
private string connPwd;//密码
4、读取xml内容并赋值给ConnEntity
/// <summary>
/// 读取XML内容赋值给连接
/// </summary>
/// <returns></returns>
public static ConnEntityReadXML()
{
ConnEntity connentiy= new ConnEntity();
if (File.Exists(ConnPath))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(ConnPath);
XmlNodeList list = xmlDoc.SelectSingleNode("Conn").ChildNodes;
connentiy.ConnIP = list[0].InnerText;
connentiy.ConnPort = list[1].InnerText;
connentiy.ConnSid = list[2].InnerText;
connentiy.ConnUser = list[3].InnerText;
connentiy.ConnPwd = list[4].InnerText;
}
return connentiy;
}
5、连接数据库测试
/// <summary>
/// 连接数据库
/// </summary>
/// <param name="ip">地址</param>
/// <param name="port">端口</param>
/// <param name="sid">服务名称</param>
/// <param name="user">用户</param>
/// <param name="pwd">密码</param>
public static bool ConnectionTestDB(string ip, string port, string sid, string user, string pwd)
{
ConnOracle(ip, port, sid, user, pwd);
try
{
//不为空 并且 是关闭或者断了的情况下,才连接
if (Connection != null && (Connection.State == System.Data.ConnectionState.Closed || Connection.State == System.Data.ConnectionState.Broken))
{
Connection.Open();
ReturnOwner = Select("SELECT OWNER, TABLE_NAME FROM ALL_TAB_COMMENTS ORDER BY OWNER, TABLE_NAME");
}
MessageBox.Show("连接成功!");
return true;
}
catch (Exception ex)
{
MessageBox.Show(+“连接失败,请检查数据库配置参数”ex.Message.ToString());
return false;
}
}
6、其中调用的函数
/// </summary>
/// <param name="ip">地址</param>
/// <param name="port">端口</param>
/// <param name="sid">服务名称</param>
/// <param name="user">用户</param>
/// <param name="pwd">密码</param>
/// <returns>OleDbConnection</returns>
private static OracleConnection ConnOracle(string ip, string port, string sid, string user, string pwd)
{
string connStr;
connStr = "Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = " + ip + ")(PORT = " + port + "))) (CONNECT_DATA = (SERVICE_NAME = " + sid + ")));User ID=" + user + ";Password=" + pwd + ";";
Connection = new OracleConnection(connStr);
return Connection;
}
详细看源码网址及下载
c#oracle创建实体类操作资源-CSDN文库