C# + asp.net中关于Server.MapPath(".")(200分)

  • 主题发起人 主题发起人 abencat
  • 开始时间 开始时间
A

abencat

Unregistered / Unconfirmed
GUEST, unregistred user!
请问为什么Server.MapPath("..")在一个有页面的单元中可以使用,而在一个单独的类文件中不可以呢? 提示说是缺少引用单元,,请指教
 
可能是不大明白你的意思,我试了一下可以:
private void Button1_Click(object sender, System.EventArgs e)
{
Label1.Text = Server.MapPath("//");
}
 
你单独增加一个类文件
 
还有另外一个问题是
private void Button2_Click(object sender, System.EventArgs e)
{

string sConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C://Inetpub//wwwroot//CMMManage//database//bbsxp.mdb";
OleDbConnection Conn = new OleDbConnection(sConn);
//try
{

Conn.Open();

if (Conn!=null)
{
string sSQl="insert into tt (xp) values ('1')";
OleDbCommand Comm = new OleDbCommand(sSQl,Conn);
Comm.ExecuteNonQuery();
}
Conn.Close();
}
//catch
//{
// Conn.Close();
//}
}
提示如下
操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。
源错误:

行 100: string sSQl="insert into tt (xp) values ('1')";
行 101: OleDbCommand Comm = new OleDbCommand(sSQl,Conn);
行 102: Comm.ExecuteNonQuery();
行 103: }
行 104: Conn.Close();

 
自己提前一下了
 
应该可以吧
 
>>操作必须使用一个可更新的查询。
是因为你没有写数据库文件的权限。
因为运行asp.net程序的默认用户是没有写权限的,你可以用模仿。(应用程序级或页面级)。
应用程序级:在web.config中添加设置如果用<identity impersonate="true"/> (对不起,之前写错了。)
页面级:编程实现。
一般的asp.net的书籍或资料上都会讲。
 
1 是在web.config 中加入 <identity impersonate="true"/>
2 还是不行 运行到Comm.ExecuteNonQuery();
就出错 了
 
如果用<identity impersonate="true"/>
此时应用程序使用IUSER_[MachineName]用户(匿名登陆用户)执行。
如果你装的操作系统是window 2003,分区为NTFS,我觉得则需要给予IUSER_[MachineName]写入bbsxp.mdb的权限。你可以试一试。
也可以用<identity impersonate="true" userName="xxx" password="xxx" />
 
to wzboy1984
上面哪个问题主要是权限的问题,已经基本处理,请问下面这个问题如何处理呢?
请问为什么Server.MapPath("..")在一个有页面的单元中可以使用,而在一个单独的类文件中(没有页面)不可以呢? 提示说是缺少引用单元,请指教
 
自己提前一下了
 
晕呀 居然200分的题目没有人回答
HttpContent.Current.Server.MapPath
 
Server.这个对象是简写,也就是当前你的Page 的Server
在当前的Page中 Server是一个实例 ,是一个实在的东西
如果你在一个类中 ,Server并不是一个实例 没有一个实际的东西
以后分数多的题目就找我好了
--------
MSN : Delphi_lha@163.com
 
呵呵 ,我的意思是在一个webclass中用 ,而不是在一个webform中用呀
QQ:15524227
 
//得到网页文件所在的绝对路径
using System;
namespace WebG
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//*****************************************************
//得到网页文件所在的绝对路径
//*****************************************************
public string GetFilePath()
{
string sFilePath;
//???????????????????如何得到呢
sFilePath=HttpContent.Current.Server.MapPath;

return sFilePath;
}
}
}
 
请帮帮忙了 朋友
 
通过引用能够实现
public string GetFilePath(System.Web.HttpServerUtility Server)
{
string sFilePath;

sFilePath=Server.MapPath;

return sFilePath;
}
应该能构实现你要的效果
 
后退
顶部