在这段代码中出现错误,任何人都可以解决 [英] in this code am getting error any one solve this
问题描述
此代码中出现错误,任何人都可以解决此问题
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml; using System.Data; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("C:\\Documents and Settings\\anush\\Desktop")); XmlNodeList bookList = doc.GetElementsByTagName("DocumentElement"); foreach (XmlNode node in bookList) { XmlElement bookElement = (XmlElement)node; string ctry = bookElement.GetElementsByTagName("DocumentElement")[0].InnerText; ddl.Items.Add(ctry); } } } protected void Button1_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); DataColumn dc = new DataColumn("id"); DataColumn dc1 = new DataColumn("DataBaseName"); dt.Columns.Add(dc); dt.Columns.Add(dc1); string ct = ddl.SelectedItem.ToString(); string dataPath = Server.MapPath("C:\\Documents and Settings\\azhar\\Desktop\\appsettings.xml"); DataSet dSet = new DataSet(); dSet.ReadXml(dataPath); DataRow[] rows = dSet.Tables[0].Select(" DataBaseName= ''" + ct + "''"); foreach (DataRow dr in rows) { DataRow myRow = dt.NewRow(); myRow["id"] = dr["id"]; myRow["DataBaseName"] = dr["DataBaseName"]; dt.Rows.Add(myRow); } grxml.DataSource = dt; grxml.DataBind(); } }
错误非常明显:
''C:/Documents and Settings/anusha/Desktop"是物理路径,但是应该是虚拟路径."
doc.Load(Server.MapPath(" ));使用物理路径-即在当前PC,硬盘驱动器C,文件夹...上精确指定查找位置的路径...
MapPath用于将虚拟驱动器(即相对于网站的虚拟驱动器)转换为物理驱动器.
完全删除Server.MapPath调用,或者将物理规范替换为虚拟规范.在您的情况下,您将必须删除MapPath,但实际上您不应该假定您将在服务器上进行登录-如果将其加载到常规"网络主机上,则几乎可以肯定不会!
,如果您已经知道文件夹为:",则无需使用Server.MapPath.
只要写
doc.Load(" );
希望这能解决您的问题.
in this code am getting error any one solve this
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml; using System.Data; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("C:\\Documents and Settings\\anush\\Desktop")); XmlNodeList bookList = doc.GetElementsByTagName("DocumentElement"); foreach (XmlNode node in bookList) { XmlElement bookElement = (XmlElement)node; string ctry = bookElement.GetElementsByTagName("DocumentElement")[0].InnerText; ddl.Items.Add(ctry); } } } protected void Button1_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); DataColumn dc = new DataColumn("id"); DataColumn dc1 = new DataColumn("DataBaseName"); dt.Columns.Add(dc); dt.Columns.Add(dc1); string ct = ddl.SelectedItem.ToString(); string dataPath = Server.MapPath("C:\\Documents and Settings\\azhar\\Desktop\\appsettings.xml"); DataSet dSet = new DataSet(); dSet.ReadXml(dataPath); DataRow[] rows = dSet.Tables[0].Select(" DataBaseName= ''" + ct + "''"); foreach (DataRow dr in rows) { DataRow myRow = dt.NewRow(); myRow["id"] = dr["id"]; myRow["DataBaseName"] = dr["DataBaseName"]; dt.Rows.Add(myRow); } grxml.DataSource = dt; grxml.DataBind(); } }
The error is pretty explicit:
"''C:/Documents and Settings/anusha/Desktop'' is a physical path, but a virtual path was expected."
doc.Load(Server.MapPath("C:\\Documents and Settings\\anusha\\Desktop"));uses a physical path - i.e. one that specifies exactly where to look - on the current pc, hard drive C, folder ...
MapPath is used to convert a virtual drive (i.e. one that is relative to the web site) into a physical drive.
Either remove the Server.MapPath call completely, or replace the physical specification with a virtual one. In your case, you would have to remove MapPath, but you really shouldn''t assume that you will have a login on the server - if you load this onto a "normal" webhost you almost certainly won''t!
if you already know your folder is:"C:\\Documents and Settings\\anush\\Desktop"then you do not need to use Server.MapPath.
Just write
doc.Load("C:\\Documents and Settings\\anush\\Desktop");
Hope this will solve your problem.
这篇关于在这段代码中出现错误,任何人都可以解决的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!