试工厂模式连数据库,帮看看哪里问题

faust 2012-05-16 05:28:17
using System;
using System.Data;
using System.Data.Common;
using System.Windows.Forms;


namespace ConsoleApplication1
{
class Program
{
[STAThread]
static void Main(string[] args)
{
System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
openFileDialog1.Filter = "数据库 (*.mdb)|*.mdb";
openFileDialog1.ShowDialog();
String accessname = openFileDialog1.FileName;

String contype = "System.Data.OleDb";
String conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + accessname + ";User ID=Admin;Password=;";

try
{

DbProviderFactory factory = DbProviderFactories.GetFactory(contype);
DbConnection con = factory.CreateConnection();
//到这步连接报错未被捕捉到,连接未正常建立,正确写法该如何改ServerVersion “con.ServerVersion”引发了“System.InvalidOperationException”类型的异常 string {System.InvalidOperationException}
con.ConnectionString = conStr;
DbCommand cmd = factory.CreateCommand();

cmd.Connection = con;
DbDataAdapter dapter = factory.CreateDataAdapter();
}
catch (System.InvalidOperationException e)//ClassNotFoundException e)
{ //捕获驱动类无法找到异常
//throw e; //e.printStackTrace();
System.Diagnostics.Trace.Assert(false, e.Message, "");
System.Environment.Exit(0);
}
}
}
}
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
du_greatwall1982 2012-05-23
  • 打赏
  • 举报
回复
USING OLEDB....
这里是不是都是高手....
faust 2012-05-23
  • 打赏
  • 举报
回复
哎!都不关心我,问题解决,没有USING OLEDB.我这结贴还给些不知所谓的分,CSDN真*****8
faust 2012-05-16
  • 打赏
  • 举报
回复
继续盼高手指点中
faust 2012-05-16
  • 打赏
  • 举报
回复
2003的ACCESS。连接在OLEDB下一点问题都没,想试下根子上(工厂模式)调用,怎么都过不去。谢谢各位关心
程老师2088 2012-05-16
  • 打赏
  • 举报
回复
好像07的access用4.0连不上的
zhujiawei7 2012-05-16
  • 打赏
  • 举报
回复
你是在用Access吗?可能是连接字符串Microsoft.Jet.OLEDB.4.0跟你的Access版本不符合

110,499

社区成员

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

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

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