我正在循環使用.net中的一些xml,並將Xml元素分配給字符串變量。在.net中循環xml使用.net
這些變量被傳遞到一個帶有三個參數的方法中。該方法在SQL Server 2005中運行一個存儲過程,該存儲過程用這三個參數查詢數據庫。
當手動傳遞參數時,方法和sproc運行正常。但是,當我嘗試從xml文件中獲取參數時Visual Studio說「過程或函數usp_CreateOrgDataSet指定的參數太多。」
這是下面
private void GenChart_Click(object sender, EventArgs e)
{
//Open Connection
conn_Org.ConnectionString = Set_OrgChartConn();
conn_Org.Open();
//Load xml Config file
XmlDocument doc = new XmlDocument();
doc.Load("Config.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("/root/Org");
foreach (XmlNode node in nodes)
{
string Title1 = node["OC_Ttl1"].InnerText;
string Title2 = node["OC_Ttl2"].InnerText;
string OrgName = node["OC_OL31"].InnerText;
//Grab Chart data
GetChartData(Title1, Title2, OrgName);
}
conn_Org.Close();
}
該方法的代碼是這樣的getChartdate方法
private void GetChartData(string OC_Ttl1, string OC_Ttl2, string OC_OL31)
{
OC_Ttl_1 = OC_Ttl1;
OC_Ttl_2 = OC_Ttl2;
OC_OL3_1 = OC_OL31;
//Execute Stored Procedure
cmd_Org.Connection = conn_Org;
cmd_Org.CommandText = "dbo.usp_CreateOrgDataSet";
cmd_Org.CommandType = CommandType.StoredProcedure;
cmd_Org.Parameters.AddWithValue("@OC_Ttl_1", OC_Ttl1);
cmd_Org.Parameters.AddWithValue("@OC_Ttl_2", OC_Ttl1);
cmd_Org.Parameters.AddWithValue("@OC_OL3_1", OC_OL31);
//Output xml
DataSet orgDataSet = new DataSet();
orgDataSet.ReadXml(cmd_Org.ExecuteXmlReader(), XmlReadMode.Auto);
orgDataSet.WriteXml("InputXMLFiles/" + OC_OL3_1.Replace(" ","_") + ".xml");
}
這是XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<Org>
<OC_Ttl1>Test1</OC_Ttl1>
<OC_Ttl2>Test1</OC_Ttl2>
<OC_OL31>OrgName1</OC_OL31>
</Org>
<Org>
<OC_Ttl1>Test2</OC_Ttl1>
<OC_Ttl2>Test2</OC_Ttl2>
<OC_OL31>OrgName2</OC_OL31>
</Org>
<Org>
<OC_Ttl1>Test3</OC_Ttl1>
<OC_Ttl2>Test3</OC_Ttl2>
<OC_OL31>OrgName3</OC_OL31>
</Org>
</root>
在誤差當地人的點窗口具有以下值:
OC_Ttl1 「Test2的」 串 OC_Ttl2 「Test2的」 串 OC_OL31 「ORGNAME2」 串
第一迭代成功,但是未能在第二。
第一次迭代成功了嗎? – 2009-10-06 11:19:43
是的第一次迭代成功,編輯了問題。謝謝。 – MrBliz 2009-10-06 11:38:33