0
이 상황이 있습니다. 우리 회사는 내가 다른 소스에서 얻은 XML 파일의 데이터를 읽고 삽입하는이 앱을 만들고 싶어한다. 나는 mlns의 = "꺼내하지 않는데이터베이스에 데이터를 삽입하는 데 C#/XML 문제가 발생했습니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<queryConfirmation xmlns="http://www.npdb-hipdb.hrsa.gov/QueryResponseCommon">
<submitter xmlns="">
<entityDBID>800000000000001</entityDBID>
<vendorID>1111514</vendorID>
</submitter>
<submissionFilename xmlns="">test.xml</submissionFilename>
<certification xmlns="">
<name>JOE SMITH</name>
<title>SUPERVISOR</title>
<phone>
<number>4075556647</number>
</phone>
<date>2008-02-26</date>
</certification>
<batchStatus xmlns="">
<dcn>2000000000388120</dcn>
<processDate>2014-04-03</processDate>
<successfullyProcessed>false</successfullyProcessed>
<error>
<code>09</code>
<message>09: This entity does not have the privilege to perform this transaction.</message>
</error>
</batchStatus>
</queryConfirmation>
내가 내 현재 코드를 사용하여 데이터베이스에 데이터를 삽입 할 수 없습니다"와에 xmlns = "HTTP : I가 붙어 부분은 내가 XML 파일을받을 때입니다 : //www.npdb-hipdb.hrsa.gov/QueryResponseCommon "을 XML 파일에서 수동으로 가져옵니다. 나는 파일에서이 정보를 가지고 같은 느낌 잘못하지만 다음은 내 코드입니다 :
private void insertResponseXml()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "XML|*.xml";
if (ofd.ShowDialog() == DialogResult.OK)
{
XmlDocument doc = new XmlDocument();
doc.Load(ofd.FileName);
XmlElement xelRoot = doc.DocumentElement;
XmlNodeList rootNodes = xelRoot.SelectNodes("/queryConfirmation");
XmlNodeList submitterNodes = xelRoot.SelectNodes("/queryConfirmation/submitter");
XmlNodeList certNode = xelRoot.SelectNodes("/queryConfirmation/certification");
XmlNodeList certPhoneNode = xelRoot.SelectNodes("/queryConfirmation/certification/phone");
XmlNodeList batchNodeList = xelRoot.SelectNodes("/queryConfirmation/batchStatus");
XmlNodeList bsErrorList = xelRoot.SelectNodes("/queryConfirmation/batchStatus/error");
foreach (XmlNode xndNode in submitterNodes)
{
entityDBID = xndNode["entityDBID"].InnerText;
vendorID = xndNode["vendorID"].InnerText;
foreach (XmlNode submisFilenameNode in rootNodes)
{
submissionFilename = submisFilenameNode["submissionFilename"].InnerText;
}
foreach (XmlNode cfn in certNode)
{
name = cfn["name"].InnerText;
title = cfn["title"].InnerText;
certificationDate = cfn["date"].InnerText;
}
foreach (XmlNode cfnp in certPhoneNode)
{
phoneNumber = cfnp["number"].InnerText;
if (cfnp["extension"] == null)
{
phoneExtension = "null";
}
else
{
phoneExtension = cfnp["extension"].InnerText;
}
}
foreach (XmlNode bsNode in batchNodeList)
{
dcn = bsNode["dcn"].InnerText;
processDate = bsNode["processDate"].InnerText;
successfullyProcessed = bsNode["successfullyProcessed"].InnerText;
}
foreach (XmlNode bsError in bsErrorList)
{
if (bsError["code"] == null)
{
code = "null";
}
else
{
code = bsError["code"].InnerText;
}
if (bsError["message"] == null)
{
message = "null";
}
else
{
message = bsError["message"].InnerText;
}
}
try
{
DA.InsertCommand = new SqlCommand("INSERT INTO response VALUES (@entityDBID, @vendorID, @submissionFilename, @fullName, @title, @number, @extension, @certificationDate, @dcn, @processDate, @successfullyProcessed, @code, @message);", DRDB);
DA.InsertCommand.Parameters.AddWithValue("@entityDBID", SqlDbType.NVarChar).Value = entityDBID;
DA.InsertCommand.Parameters.AddWithValue("@vendorID", SqlDbType.NVarChar).Value = vendorID;
DA.InsertCommand.Parameters.AddWithValue("@submissionFilename", SqlDbType.NVarChar).Value = submissionFilename;
DA.InsertCommand.Parameters.AddWithValue("@fullName", SqlDbType.NVarChar).Value = name;
DA.InsertCommand.Parameters.AddWithValue("@title", SqlDbType.NVarChar).Value = title;
DA.InsertCommand.Parameters.AddWithValue("@number", SqlDbType.NVarChar).Value = phoneNumber;
DA.InsertCommand.Parameters.AddWithValue("@extension", SqlDbType.NVarChar).Value = phoneExtension;
DA.InsertCommand.Parameters.AddWithValue("@certificationDate", SqlDbType.NVarChar).Value = certificationDate;
DA.InsertCommand.Parameters.AddWithValue("@dcn", SqlDbType.NVarChar).Value = dcn;
DA.InsertCommand.Parameters.AddWithValue("@processDate", SqlDbType.NVarChar).Value = processDate;
DA.InsertCommand.Parameters.AddWithValue("@successfullyProcessed", SqlDbType.NVarChar).Value = successfullyProcessed;
DA.InsertCommand.Parameters.AddWithValue("@code", SqlDbType.NVarChar).Value = code;
DA.InsertCommand.Parameters.AddWithValue("@message", SqlDbType.NVarChar).Value = message;
DRDB.Open();
DA.InsertCommand.ExecuteNonQuery();
DRDB.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
이 또한 내가 비주얼 스튜디오 2005 (C# 2.5)를 사용하고 문제를 악화시킬 수 있습니다. 어떤 도움을 주시면 감사하겠습니다.