在 T-SQL 中,我有一个这样的 exec:
EXEC [dbo].[usp_TaskStatus_Time_Calculation_Final]
@EmployeeGuidIdTableType = @EmployeeGuidIdTableType,
@StartingDate = '2018-08-02 00:00:00.000',
@EndingDate = '2018-08-08 00:00:00.000'
它工作正常,参数正常工作,所以我想在 C# 中重现它,我这样做:
public DataTable ExeSQLParamAndType(string SprocName, DataTable paramArray, string tableTypeName, string parameters = null)
{
SqlCommand cmd = new SqlCommand(SprocName, this.dbconn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter(tableTypeName, SqlDbType.Structured));
cmd.Parameters[tableTypeName].Value = paramArray;
cmd.Parameters.Add(new SqlParameter(parameters, SqlDbType.NVarChar));
DataTable tbl = new DataTable("Table1")
{
Locale = System.Globalization.CultureInfo.InvariantCulture
};
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
da.Fill(tbl);
}
catch (SqlException e)
{
this.HandleSQLError(e, "GetTableBySQL", SprocName);
}
finally
{
cmd.Dispose();
}
return tbl;
}
执行方法:
db.ExeSQLParamAndType("StoredProcedureCalc", parameters,
"@EmployeeGuidIdTableType",
$"@StartingDate = '{startDate}', @EndingDate = '{endDate}'");
尝试在线传递StaringDate和EndingDate参数 时出现异常this.HandleSQLError(e, "GetTableBySQL", SprocName);
@StartingDate = ''2018-08-02 00:00:00.000'', @EndingDate = ''2018-08-08 00:00:00.000'' 不是过程 StoredProcedureCalc 的参数
有人看到那里有问题吗?
MM们
弑天下
相关分类