ADO.NET Возвращается неверный результат запроса
#38904404
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
Участник
Откуда: Кострома
Сообщения: 146
|
|
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
using (var SqlCon = await Connection.GetConnection())
{
int count;
object o = null;
using (var cmdIdsCount =
Command.InitializeCommandForInputIds
(@"GetPrivateMessagesAuthorsCount",
SqlCon, companionId,accountId))
{//тут companionId=2,accountId=1
o = await cmdIdsCount.ExecuteScalarAsync();
}
if (o == DBNull.Value || o == null)
count = 1;
else
count = Convert.ToInt32(o);
}
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
internal static SqlCommand InitializeCommandForInputIds
(string Function, SqlConnection SqlCon, int CompanionId, int AccountId)
{
SqlCommand cmd = new SqlCommand(Function, SqlCon);//тут CompanionId=2,AccountId=1 и ConnectionState=Open
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter par = cmd.Parameters.Add(AccountIdParameter, SqlDbType.Int);
par.Value = AccountId;
SqlParameter par1 = cmd.Parameters.Add(CompanionIdParameter, SqlDbType.Int);
par.Value = CompanionId;
cmd.CommandTimeout = CmdTimeout;
cmd.Prepare();
return cmd;
}
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
create table PrivateMessage
(
Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
SenderAccountId INT NOT NULL DEFAULT 1,
AcceptorAccountId int NOT NULL DEFAULT 1,
PrivateText NVARCHAR(1000) NOT NULL DEFAULT N'Сообщение'
);
insert into PrivateMessage values (1,2,N'Первое'),
(2,1,N'Второе'),
(1,2,N'Третье');
go
CREATE PROCEDURE GetPrivateMessagesAuthorsCount(@AccountId int=1, @CompanionId int=2)
AS
BEGIN
set nocount off;
select count(Id)
from PrivateMessage
where ((SenderAccountId=@AccountId and AcceptorAccountId=@CompanionId)
or (SenderAccountId=@CompanionId and AcceptorAccountId=@AccountId));
end
go
Почему-то при запросе в базу из программы count всегда=0 (o=0)
1.
exec GetPrivateMessagesAuthorsCount 2,1
выдаёт 3. В чём может быть проблема и как исправить?
|
|