在Web应用程序中导入Xml文件到数据库
本文关键字:文件 数据库 Xml 导入 Web 应用程序 | 更新日期: 2023-09-27 17:54:00
我正在尝试读取xml到数据库。我在代码的第1行得到systemnullreferenceException
错误:
StreamReader reader = new StreamReader(System.Web.HttpContext.Current.Server.MapPath("File.xml"));
string connStr = ConfigurationManager.ConnectionStrings["SERVERCONNECTION" +
"connection timeout=30"].ConnectionString;
DataSet ds = new DataSet();
ds.ReadXml(reader);
string strxml = XDocument.Load(reader).ToString();
SqlConnection sqlconn = new SqlConnection(connStr);
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlconn;
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.CommandText = "loadXML";
sqlcmd.Parameters.AddWithValue("@xmlstr", strxml);
sqlconn.Open();
sqlcmd.ExecuteNonQuery();
sqlconn.Close();
为了从Xml文件中读取XmlDocument
,您可以使用以下ASP.NET/C#
代码片段:
#region Read XML Document from file, ignore comments
/// <summary>
/// Read XML Document from file, ignore comments
/// </summary>
/// <param name="filePath">string</param>
/// <returns>XmlDocument</returns>
public static XmlDocument ReadXML(string filePath)
{
XmlReaderSettings readerSettings;
try
{
// check if document exists, otherwise exit
if (!File.Exists(file)) { return null; }
// reader settings to ignore comments
readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
// load xml document
using (XmlReader reader = XmlReader.Create(file, readerSettings))
{
XmlDocument _xmlDoc = new XmlDocument();
_xmlDoc.Load(reader);
return _xmlDoc;
}
}
catch { return null; }
finally { readerSettings = null; }
}
#endregion
我还建议将您的文件File.xml
放在ASP中。. NET专用App_Data
文件夹。文件的完整路径可以使用以下语句组成:
string _fileFullPath = String.Concat (AppDomain.CurrentDomain.BaseDirectory, "App_Data/File.xml");
或者,您可以使用Server.MapPath()
方法(上面显示的方法要快得多)。