异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误 public OleDbDataReader getReader(string sql)
{
try
{
OleDbCommand myCommand = new OleDbCommand(sql, MyConn);
if (MyConn.State == ConnectionState.Closed) MyConn.Open();
OleDbDataReader Myreader;
Myreader = myCommand.ExecuteReader();
return Myreader;
MyConn.Close();
}
catch (Exception ex)
{
if (MyConn.State == ConnectionState.Open) MyConn.Close();
throw ex; //就这一行错误
}
}
我在网上找过很多方法,修改iis匿名访问有了,修改temp权限也改了,添加<identity impersonate="false"/>也加了
每次刚开始都好的,多刷新几次就出错,实在郁闷
链接代码是这样的
public OleDbConnection MyConn;
public DataControl()
{
string MyConnString = ConfigurationManager.AppSettings["myconnstring"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["mydbpath"]).ToString();
MyConn = new OleDbConnection(MyConnString);
}帮忙看一下,谢谢啊
{
try
{
OleDbCommand myCommand = new OleDbCommand(sql, MyConn);
if (MyConn.State == ConnectionState.Closed) MyConn.Open();
OleDbDataReader Myreader;
Myreader = myCommand.ExecuteReader();
return Myreader;
MyConn.Close();
}
catch (Exception ex)
{
if (MyConn.State == ConnectionState.Open) MyConn.Close();
throw ex; //就这一行错误
}
}
我在网上找过很多方法,修改iis匿名访问有了,修改temp权限也改了,添加<identity impersonate="false"/>也加了
每次刚开始都好的,多刷新几次就出错,实在郁闷
链接代码是这样的
public OleDbConnection MyConn;
public DataControl()
{
string MyConnString = ConfigurationManager.AppSettings["myconnstring"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["mydbpath"]).ToString();
MyConn = new OleDbConnection(MyConnString);
}帮忙看一下,谢谢啊
解决方案 »
- 由于缺少调试目标,....使其指向目标程序集的正确位置 各位大侠求帮助 十万火急
- 自己写了一个继承picturebox的控件,加入滚动条后,反应很慢,不知道是什么原因
- 如何快速准确的获取字符串中每一个变量和常量[[[[[[[[base]+baseadd]+24]+18]+B64]+4C]+168]+0]
- 把DateGrid数据导入Excel里,发生的错误!~~
- 一个关于给session付0的问题
- 清高手将将base关键字
- 进程中如何通过Process.Start()打开程序
- 恢复数据库,怎样将数据库的连接全部断开?
- 这段代码运行有错吗?
- 我在c#调用matlab,然后将matlab生成的figure图像嵌入panel中,在单步调试的情况可以正常显示,但是启动就不行
- DataGridView无法更新
- 鼠标事件
话说一般THROW直接用会出问题吧 因为try catch如果出错的话会复原的
MyConn.Close(); 方法在返回后 不会再执行“MyConn.Close()”,也就是return 后面的语句都不会执行了
当然,你也可以把max pool size设置的很大,呵呵
8错,良好的习惯还是要保持的,结束就要Close,用在return前面OleDb是不是连ACCESS啊?给mdb文件加个权限看看?
谢谢,try catch去掉的话就 if (MyConn.State == ConnectionState.Closed) MyConn.Open();
这行错,也是未指定的错误
强烈建议把IF条件去了试试......直接OPEN
OLEDB不熟 不过ADO.NET的技术内幕上也没看到过LZ这样的写法.....
网上的解决方案很多,正确答案原来如此: 在连接数据库的时候是这么做的: public static OleDbConnection getxwdtConn() { string connectionstring = WebConfigurationManager.ConnectionStrings["xwdtconnection"].ConnectionString; OleDbConnection con = new OleDbConnection(connectionstring); return con; } 在MS sql或Access,中都不会有问题,调试也不会有问题。 发布之后会有如上错误提示。 是因为数据库的操作中肯定有oledbdatadapter,或dataset,并且使用了con.open()和con.close(),。 具体解决只需把open 和close删掉就可以了,因为用的是断开式连接。 如果改用静态变量的做法
<appSettings>
<add key="myconnstring" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="mydbpath" value="~/App_Data/MyData.mdb"/>
</appSettings>
配置文件里是这样的,然后链接
public OleDbConnection MyConn;
public DataControl()
{
string MyConnString = ConfigurationManager.AppSettings["myconnstring"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["mydbpath"]).ToString();
MyConn = new OleDbConnection(MyConnString);
}