【发布时间】:2017-05-06 19:48:18
【问题描述】:
首先,我知道这样的问题是重复的,但是请注意这个期望的问题。 这是我的 C# 代码,它引发了错误:
过程或函数“aaa”需要参数“@bbb”,但未提供。
if (Dt.Rows.Count > 0)
{
Cmd = new SqlCommand();
Cmd.CommandText = ("[dbo].[aaa]");
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@bbb", SqlDbType.Int).Value = 1;
Cmd.Parameters.Add("@LettType", SqlDbType.VarChar, 3).Value = LetterType;
Cmd.Parameters.Add("@IsTajamo", SqlDbType.Char, 1).Value = 1;
Da = new SqlDataAdapter(Cmd.CommandText, Con);
Dt.Clear();
/*Line72:*/
Da.Fill(Dt);
}
从技术上讲,我找不到错误在哪里。我传递了所有参数。当我在 MS-SQL 中单独执行我的存储过程时,它可以正常使用这些值。
各位专家能帮我解决这个问题吗? 注意:这里是存储过程:
ALTER PROCEDURE [dbo].[aaa] (@bbb Int , @LettType CHAR(3) , @IsTajamo CHAR(1))
AS
BEGIN
select 1
END
注意:(这可能会有所帮助,这是我的堆栈跟踪):
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, Boolean breakConnection, Action
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler、SqlDataReader 数据流、 BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) 在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior,字符串 resetOptionsString,布尔值 isInternal, Boolean forDescribeParameterEncryption) 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior、RunBehavior runBehavior、布尔 returnStream、布尔 异步,Int32 超时,任务和任务,布尔 asyncWrite,布尔 inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、runBehavior、布尔返回流、字符串 方法,TaskCompletionSource`1 完成,Int32 超时,Task& 任务, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、runBehavior、布尔返回流、字符串 方法)在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior 行为)在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior 行为)在 System.Data.Common.DbDataAdapter.FillInternal(DataSet 数据集,DataTable[] 数据表,Int32 startRecord,Int32 maxRecords, 字符串 srcTable、IDbCommand 命令、CommandBehavior 行为)在 System.Data.Common.DbDataAdapter.Fill(DataTable[] 数据表,Int32 startRecord、Int32 maxRecords、IDbCommand 命令、CommandBehavior 行为)在 System.Data.Common.DbDataAdapter.Fill(DataTable 数据表)在 WebService.Services.GetLettersList(字符串用户名, String PassPhrase、String CodeName、String LetterType)在 D:\Amiri\WebService\WebService\Services.asmx.cs:第 79 行
【问题讨论】:
-
@Satpal 程序没有问题。如果您只是在标记之前正确阅读了问题。你可以理解我说的。程序运行正常。
-
我已阅读该问题但尚未标记。但是对我来说问题似乎程序 sn-p 将有助于解决
-
@نرخیاب:与那些试图帮助你的人争论是让帮助消失的好方法。也就是说,根据我的经验,此错误的最常见原因是参数名称拼写错误。检查你的拼写。
-
我们需要看看你是如何执行存储过程的,以试图了解问题出在哪里。
-
@alex 我把程序带回来了
标签: c# asp.net sql-server stored-procedures sqldataadapter