[英]C# error “Could not find Stored procedure” if DB collation is not “SQL_Latin1_General_CP1_CI_AS”
[英]c# SQL Could not find stored procedure
我有這個問題,我的代碼聲明它找不到存儲過程。 執行 sproc 的代碼如下:
public class StoredProcedureProvider : IStoredProcedureProvider
{
private readonly string _connectionString;
public StoredProcedureProvider(IDataConfig config) => _connectionString = config.ConnectionString;
public T ExecuteScalar<T>(string procedureName, IList<SqlParameter> parameters = null)
{
using (var connection = new SqlConnection(_connectionString))
{
using (var command = new SqlCommand(procedureName, connection))
{
command.CommandType = CommandType.StoredProcedure;
if (parameters != null && parameters.Any())
foreach (var parameter in parameters)
command.Parameters.Add(parameter);
connection.Open();
var result = command.ExecuteScalar();
return (T)Convert.ChangeType(result, typeof(T));
}
}
}
}
我創建了一個沒有參數的測試存儲過程,並像這樣調用它:
var t = _storedProcedureProvider.ExecuteScalar<int>("sp_test");
這行得通。 下一行是這樣的:
var instructionType =
_storedProcedureProvider.ExecuteScalar<int>(
"generalInstructionTypeByCode", new List<SqlParameter>
{
new SqlParameter("@userID", SqlDbType.Int, 0),
new SqlParameter("@code", token.Update.Instruction.TypeCode)
});
這失敗了。 它正在嘗試執行此存儲過程:
CREATE PROCEDURE [dbo].[generalInstructionTypeByCode]
@userID as int,
@code as varchar(5) As
BEGIN
select * from generalInstructionTypes where shortName = @code
END
有誰知道為什么找不到它?
您應該按照以下步驟操作,我想它應該可以工作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.