Я разрабатываю приложение Xamarin Forms, где мне нужно удалить запись из базы данных при нажатии кнопки сброса. У нас есть API, который выполняет действие.
Код выглядит следующим образом:
Код API
[HttpDelete]
public Response ResetRecord(string pk)
{
try
{
Response response = new Response();
using (var ctxdel = new GDSEntities4())
{
var result = ctxdel.SpDeleteRecordOnReset(int.Parse(pk));
if (result > 0)
{
response.Message = result.ToString();
response.Status = 1;
}
else
{
response.Message = "0";
response.Status = 0;
}
}
return response;
}
catch (Exception ex)
{
Response res = new Response();
res.Message = ex.Message;
res.Status = 0;
return res;
}
}
Это работает, когда я проверяю с почтальоном. Во внешнем интерфейсе функция удаления выглядит следующим образом:
public async Task DeleteRecFromDB(string pk)//(, bool isNewItem = false)
{
try
{
HttpClient client = new HttpClient();
Response response = new Response();
string url = "http://xx.xxx.xxx.xxx/api/GDS/ResetRecord?PK={pk}";
var responseData = await client.DeleteAsync(url);
if (responseData.IsSuccessStatusCode)
{
string result = await responseData.Content.ReadAsStringAsync();
response = JsonConvert.DeserializeObject<Response>(result);
var message = response.Message;
var status = response.Status;
await DisplayAlert("Success","Deleted from DB","OK");
}
else
{
await DisplayAlert("Failed", "Couldnt Delete from DB", "OK");
}
}
catch (Exception)
{
UserDialogs.Instance.HideLoading();
await DisplayAlert(LangResource.Message, LangResource.MsgWentWrong, LangResource.ok);
}
}
Значение pk
поступает в эту функцию DeleteRecFromDB
, но я не могу найти, в чем проблема. Он выполняет Couldnt Delete from DB
часть. Запись не удаляется из базы данных. Но хранимая процедура и API работают нормально. Я не могу удалить запись из внешнего интерфейса.
Ответ при проверке в почтальоне
{
"Message": "0",
"Status": 0
}
Моя хранимая процедура выглядит следующим образом:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SpDeleteRecordOnReset]
(@ID int)
AS
BEGIN
DELETE FROM ProfMst
WHERE PK = @ID
END