Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在sql中传递数据透视点的值时出错_C#_Sql_Sql Server - Fatal编程技术网

C# 在sql中传递数据透视点的值时出错

C# 在sql中传递数据透视点的值时出错,c#,sql,sql-server,C#,Sql,Sql Server,C#查询生成器的代码 DataSet ds = new DataSet(); SqlParameter[] p = new SqlParameter[3]; p[0] = new SqlParameter("@UserID", UserID); p[1] = new SqlParameter("@idAssessment", id); p[2] = new SqlParameter("@idAssessment1", id1); //string Query = "Select intMa

C#查询生成器的代码

DataSet ds = new DataSet();

SqlParameter[] p = new SqlParameter[3];

p[0] = new SqlParameter("@UserID", UserID);
p[1] = new SqlParameter("@idAssessment", id);
p[2] = new SqlParameter("@idAssessment1", id1);

//string Query = "Select intMark  from QuiestionPaper Where intQstnSlNo=@SlNo and intQstnMasterID=@QstnMasterID";
string Query = "SELECT Topics,['@idAssessment'] as GGG,['@idAssessment1'] as BBB, case  when  ['@idAssessment'] = 0 or ['@idAssessment'] IS null  then ['@idAssessment1']*100 else ( isnull(['@idAssessment1'],0) - ['@idAssessment'])/['@idAssessment']*100 end  AS PercentageImproveBBBB from ( SELECT fltTotalMark as [TMark], intQstnMasterID as [assid] ,vchTopic as [Topics] from ManageAssessment WHERE intUserID=174)AS S pivot(SUM(TMark)FOR assid IN (['@idAssessment'], ['@idAssessment1']))AS s";
try
{
   ds = DataLayer.SqlHelper.ExecuteDataset(Utilities.GetConnectionString(Utilities.DataBase.Cobels), CommandType.Text, Query, p);
   return ds.Tables[0];
}
catch {   }

return null;
在sql中,如果我将一个参数值放在其中,它工作正常,但在c#中给出错误,有人能帮我解决吗?

尝试以下方法:

['"+@idAssessment+"']

答案是:在查询中,像这样传递一个值
[“+idAssessment+”]

,错误是什么?您不能以您尝试的方式对其进行参数化-
PIVOT
In()
子句中提供的是一组列名,而不是字符串。这些列也将出现在结果集中,对于任何特定查询,结果集中列的数量、名称和类型都是固定的。这将自动标记为低质量,因为它只是代码。你介意添加一些文字来解释它/它是如何解决问题的吗?