using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;/// <summary>
/// 数据库连接基类
/// </summary>
public class DataConnection
{
public string password = "";
public string userid = "";
public string datasource = ""; public DataConnection()
{
password = "";
userid = "";
datasource = "";
}
/// <summary>
/// 数据库密码
/// </summary>
public string Password
{
set { password = value;}
get { return password; }
}
/// <summary>
/// 数据库用户名
/// </summary>
public string UserId
{
set { userid = value;}
get { return userid; }
}
/// <summary>
/// 数据源名称
/// </summary>
public string DataSource
{
set { datasource = value;}
get { return datasource; }
}
}/// <summary>
/// Ole数据库连接,继承DataConnection类
/// </summary>
public class ConnOle:DataConnection
{
public ConnOle(){}
public OleDbConnection conn;
}/// <summary>
/// Ole连接informix数据库,继承ConnOle类
/// </summary>
public class ConnOleInformix:ConnOle
{
public bool info;
public ConnOleInformix()
{
info = true;
}
/// <summary>
/// 设置Persist Security Info属性
/// </summary>
public bool Info
{
set { info = value;}
get { return info; }
}
public OleDbConnection Conn
{
get
{
conn = new OleDbConnection();
conn.ConnectionString = "Provider = ifxoledbc.2;password = "+Password+";User ID = "+UserId+";Data Source = "+DataSource+";Persist Security Info = "+Info+"";
return conn;
}
}
}/// <summary>
/// Ole连接Access数据库,继承ConnOle类
/// </summary>
public class ConnOleAccess:ConnOle
{
public OleDbConnection Conn
{
get
{
conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DataSource+";Jet OLEDB:Database Password="+Password+";";
return conn;
}
}
}
//----------------------------------------------------------------------------------------
/// <summary>
/// 具体使用类结构
/// </summary>
public class DataClass
{
public static void Main()
{
//连接infomix数据库
/*
ConnOleInformix COInfo = new ConnOleInformix();
COInfo.UserId = "wyd";
COInfo.Password = "123456";
COInfo.DataSource = "abcd@cld3304c_tcp";
OleDbConnection conn = COInfo.Conn;
*/ //连接access数据库
ConnOleAccess COAccs = new ConnOleAccess();
COAccs.DataSource = "aa.mdb";
OleDbConnection conn = COAccs.Conn; OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
try
{
cmd.Connection.Open();
cmd.CommandText = "insert into aa (aa) values ('ggrrtt')";
int intRows = cmd.ExecuteNonQuery();
if(intRows != 1)
{
MessageBox.Show("Did not insert row");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
cmd.Connection.Close();
}
MessageBox.Show("ok");
}
}
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;/// <summary>
/// 数据库连接基类
/// </summary>
public class DataConnection
{
public string password = "";
public string userid = "";
public string datasource = ""; public DataConnection()
{
password = "";
userid = "";
datasource = "";
}
/// <summary>
/// 数据库密码
/// </summary>
public string Password
{
set { password = value;}
get { return password; }
}
/// <summary>
/// 数据库用户名
/// </summary>
public string UserId
{
set { userid = value;}
get { return userid; }
}
/// <summary>
/// 数据源名称
/// </summary>
public string DataSource
{
set { datasource = value;}
get { return datasource; }
}
}/// <summary>
/// Ole数据库连接,继承DataConnection类
/// </summary>
public class ConnOle:DataConnection
{
public ConnOle(){}
public OleDbConnection conn;
}/// <summary>
/// Ole连接informix数据库,继承ConnOle类
/// </summary>
public class ConnOleInformix:ConnOle
{
public bool info;
public ConnOleInformix()
{
info = true;
}
/// <summary>
/// 设置Persist Security Info属性
/// </summary>
public bool Info
{
set { info = value;}
get { return info; }
}
public OleDbConnection Conn
{
get
{
conn = new OleDbConnection();
conn.ConnectionString = "Provider = ifxoledbc.2;password = "+Password+";User ID = "+UserId+";Data Source = "+DataSource+";Persist Security Info = "+Info+"";
return conn;
}
}
}/// <summary>
/// Ole连接Access数据库,继承ConnOle类
/// </summary>
public class ConnOleAccess:ConnOle
{
public OleDbConnection Conn
{
get
{
conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DataSource+";Jet OLEDB:Database Password="+Password+";";
return conn;
}
}
}
//----------------------------------------------------------------------------------------
/// <summary>
/// 具体使用类结构
/// </summary>
public class DataClass
{
public static void Main()
{
//连接infomix数据库
/*
ConnOleInformix COInfo = new ConnOleInformix();
COInfo.UserId = "wyd";
COInfo.Password = "123456";
COInfo.DataSource = "abcd@cld3304c_tcp";
OleDbConnection conn = COInfo.Conn;
*/ //连接access数据库
ConnOleAccess COAccs = new ConnOleAccess();
COAccs.DataSource = "aa.mdb";
OleDbConnection conn = COAccs.Conn; OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
try
{
cmd.Connection.Open();
cmd.CommandText = "insert into aa (aa) values ('ggrrtt')";
int intRows = cmd.ExecuteNonQuery();
if(intRows != 1)
{
MessageBox.Show("Did not insert row");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
cmd.Connection.Close();
}
MessageBox.Show("ok");
}
}
解决方案 »
- 程序读写word一般通过Paragraphs循环获得内容,但测试发现Paragraphs也包括了表格单元,如果这样循环很慢啊,谢谢大侠指点
- 上次问了一个出题的权重设计问题,还是有问题
- 求DataGridView和Oracle数据库之间增删改查操作程序
- 两个线程同时读取同一个文件,并打印到控制台上,结果却出现问题了:一些内容丢失了。
- System.Timers中的timer执行方法时内存不能释放
- 哪个WMI类可以取得计算机的"计算机描述"
- 概念问题,关于字符
- c#调用GetGlyphOutline问题
- 做c#开发的朋友留个QQ吧,大家多交流
- 如何在C#中设置一个按钮为默认按钮呢?属性isDefault是受保护的呀
- 如何二次开发水晶报表(CrystalReportViewer)打印事件?
- 急!急!急!如何得到任务管理器中的进程的可执行文件的目录?
public string password = "";
public string userid = "";
public string datasource = ""; public DataConnection()
{
password = "";
userid = "";
datasource = "";
}
有必要两个都符初值吗?还有,既然你做成了多数据库形式,建议用工厂方法模式,这样有更好的灵活性和扩展性
不过我没有什么依据,只是习惯在数据访问层判一下库类型,
为SQL Server 和Oracle分别写连接字串(我用到的只有这两种库)
便于将来修改
一般比较抽象的基类写成一个接口比较合理
COInfo.UserId = "wyd";
COInfo.Password = "123456";
COInfo.DataSource = "abcd@cld3304c_tcp";
OleDbConnection conn = COInfo.Conn;
*/ //连接access数据库
ConnOleAccess COAccs = new ConnOleAccess();
COAccs.DataSource = "aa.mdb";
OleDbConnection conn = COAccs.Conn; OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;我觉得你这个主函数里面的内容有些问题,你先创建了一个对informix的数据操作类,然后把conn赋值到informix的连接,下面又创建了一个access的数据操作类,有把conn赋值为access的连接,而测试的OleDbCommand只有一个,不如传个参数n到主函数,然后根据参数判断要连接的数据库
switch n
{
case 1:
....informix;
break;
case 2:
.... access:
break;
}
下面再执行OleDbCommand
这里才真算的上是数据库连接大全
交流一下。http://chjl.cn/Article/Read.aspx?ArticleID=86