类库不能用高手看看吧,谢谢先!

myding008 2004-05-06 05:17:38
类库源代码:

using System;
using System.Data;
using System.Data.OleDb;
namespace MycMdb
{
public class Mdbc
{
public string ConnStr;
public string mysql;

public Mdbc(string PathName)
{
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;"+"Data
Source="+PathName; }
public OleDbDataReader GetDataReader(string SelectSQL)
{
this.mysql=SelectSQL;
OleDbConnection Conn;
OleDbCommand Cmd;
OleDbDataReader myDataReader;
Conn= new OleDbConnection(ConnStr);
Cmd = new OleDbCommand(mysql, Conn);
Conn.Open();
myDataReader=Cmd.ExecuteReader();
return myDataReader;
}
}
}


Aspx.cs源代码:


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using MycMdb;
namespace Asp.Net8
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid data1;

private void Page_Load(object sender, System.EventArgs e)
{
Mdbc mymdb=new Mdbc("Server.MapPath(new.mdb)");

data1.DataSource=mymdb.GetDataReader("select * from aa");

     data1.DataBind();

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}


错误类型:

“/Asp.Net8”应用程序中的服务器错误。
--------------------------------------------------------------------------------

找不到文件 'C:\WINDOWS\system32\Server.MapPath(new.mdb)'。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 找不到文件 'C:\WINDOWS\system32\Server.MapPath(new.mdb)'。

如果我把Aspx.cs文件的:

Mdbc mymdb=new Mdbc("Server.MapPath(new.mdb)");

改为:

Mdbc mymdb=new Mdbc("g:\asp.net8\new.mdb");

错误类型如下:

“/Asp.Net8”应用程序中的服务器错误。
--------------------------------------------------------------------------------

从索引 47 处开始,初始化字符串的格式不符合规范。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: 从索引 47 处开始,初始化字符串的格式不符合规范。

高手帮帮忙吧,真的没啦就剩十分 谢谢!!!
...全文
17 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xiangding 2004-06-17
呵,如果OK了,记得给贴,养成好习惯
  • 打赏
  • 举报
回复
xiangding 2004-06-17
这是你程序的问题:
首先分析一下1,
如果你用:
Mdbc mymdb=new Mdbc("Server.MapPath(new.mdb)");
得出的串为:


'C:\WINDOWS\system32\Server.MapPath(new.mdb)'
你说这样的一个文件路径能找到吗?
我想绝对不会有这样的文件吧,

解决方法:
在你这个类库的项目中,在右边的“引用”中右击,“添加引用”,
选择:System.Web.Dll;

因为Server对象是存在System.Web下面的。
存在的位置为:System.Web.HttpContext.Current.Server

然后程序改为:ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source="+System.Web.HttpContext.Current.Server.MapPath("new.mdb");

这样就OK了,


第二种方法:
你传:g:\asp.net8\new.mdb路径过去,
你可知道C#中需要用"\\"(两个表示一个?)
解决方法:
"g:\\asp.net8\\new.mdb";


问题解决了吗?
还有问题找我: QQ: 348402305
Msn: xiang__ding@hotmail.com
  • 打赏
  • 举报
回复
vzxq 2004-05-06
帮你UP,是不是 VS出的问题啊。换一个数据库可以吗?
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-06 05:17
社区公告
暂无公告