处理FOR XML PATH存储过程的结果

时间:2009-09-23 09:45:12

标签: c# .net xml stored-procedures

我想在SQL Server 2005中调用一个存储过程,该存储过程返回一个XML字符串,然后可以将该字符串传递给另一个方法;我认为下面的代码一直到我执行查询的程度,但后来我有点迷失......

private string GetChartData(string  OC_Ttl1, string OC_OL31, string OC_OL32)
{
    string chartData;

    //Prepare Connection Variables
    SqlConnection conn_Org  = new SqlConnection();
    SqlCommand cmd_Org = new SqlCommand();

    //Open Connection
    conn_Org.ConnectionString = Set_OrgChartConn();
    conn_Org.Open();

    //Execute Procedure
    cmd_Org.Connection = conn_Org;
    cmd_Org.CommandText = "dbo.usp_CreateOrgDataSet '" + OC_Ttl1 +"','" + OC_OL31 + "'.'" + OC_OL32 +"'";
    cmd_Org.CommandType = CommandType.StoredProcedure;

    chartData = cmd_Org.ExecuteScalar();

    conn_Org.Close();

    return chartData;
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

cmd_Org.CommandText = "dbo.usp_CreateOrgDataSet '" + OC_Ttl1 +"','" + OC_OL31 + "'.'" + OC_OL32 +"'";
cmd_Org.CommandType = CommandType.StoredProcedure;

上述行可能会导致错误。如果你设置

cmd_Org.CommandType = CommandType.StoredProcedure;

"dbo.usp_CreateOrgDataSet '" + OC_Ttl1 +"','" + OC_OL31 + "'.'" + OC_OL32 +"'"

CommandText,然后CommandText将被视为存储过程名称和错误

  

无法找到存储过程[dbo.usp_CreateOrgDataSet ....]

会发生。

您只能将dbo.usp_CreateOrgDataSet设置为CommandText,并通过以下方式传递参数:

 mycommand.Parameters.AddWithValue('@param1', OC_Ttl1);
 mycommand.Parameters.AddWithValue('@param2',  OC_OL31);
 mycommand.Parameters.AddWithValue('@param3',OC_OL32 );

 cmd_Org.CommandType = CommandType.StoredProcedure;
 chartData = cmd_Org.ExecuteScalar();

答案 1 :(得分:0)

你能不能只拨打cmd_Org.ExecuteScalar()