我想在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;
}
有什么想法吗?
答案 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()
?