C# 参数决定连接Access和Sql(简单问题)

zhy506 2007-07-17 05:31:18
程序在连接Access和SQL时,是由参数来决定连接哪个类型的数据库。
if (DataType=="Access")
{
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\data.mdb";
OleDbConnection Conn = new OleDbConnection(strConn);
OleDbCommand cm = new OleDbCommand("", Conn);
OleDbDataReader dr;
}
else
{
strConn = "Server=(local);User ID=sa;Password=;Initial Catalog=Northwind";
SqlConnection Conn = new SqlConnection(strConn);
SqlCommand cm = new SqlCommand("", Conn);
SqlDataReader dr;
}

怎么返回上面的Conn,cm,dr的值?
这样一来,我想在执行SQL语句时,就不管是cm是SqlCommand 和OleDbCommand
cm.CommandText="select * from A";
cm.ExecuteNonQuery();
...全文
252 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ben_bear 2007-07-21
  • 打赏
  • 举报
回复
用工厂
.Net给你提供了更好的解决方案
89993004 2007-07-20
  • 打赏
  • 举报
回复
在配置文件里加就行了,随你加多少种数据连接.
<add key="ConnStr" value="server=.;DataBase=ch5;Integrated Security=SSPI"/>
<add key="AccessConnStr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\ems.mdb"/>
<add.......
handicapped 2007-07-19
  • 打赏
  • 举报
回复
ref
yaoshuwen 2007-07-18
  • 打赏
  • 举报
回复
或者把数据库连接写到config文件,需要用哪个就用哪个咯,然后connection、commmond等各写一套就是了
yaoshuwen 2007-07-18
  • 打赏
  • 举报
回复
定义一个接口传咯
zhy506 2007-07-18
  • 打赏
  • 举报
回复
还有没有更好的答案?
ezhuyin 2007-07-17
  • 打赏
  • 举报
回复
OleDbCommand, OleDbDataReader, SqlCommand, SqlDataReader都是不同的类型,
所以,Conn,cm,dr在实例化的时候,也是不同的类型。要处理这个问题可不是一个“简单”的问题。你要么就做一个类包装一下,不然没别的办法。

public class SqlHelper
{
private string _SqlCommand; // 命令行
private string _ConnString; // 数据库连接
private DataSet _ResultSet; // 结果集
private string _CommandType; // 类型
private object[] Parameters; // 参数集
// 这里设置属性

// 执行Sql,结果放入ResultSet
public void Invoke()
{
}

// 设定参数
public void AddParameter()
{
}
}
andyalex 2007-07-17
  • 打赏
  • 举报
回复
if(dr.Reader())
TextBox1.Text=dr["vote_count"];
............

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧