Почему моя запись не удаляется в SQL Server с использованием ASP.NET? - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь удалить записи из базы данных после того, как он удаляет каталог.

У меня есть кнопка для удаления, как только я нажимаю на кнопку, она должна вызвать ajax, а затем удалить Folderесли он существует, как только он удалит папку, затем удалите одну запись в базе данных

Вот мой код Ajax:

// Delete Folder
$("#btnDeleteFolder").click(function () {
    var dirPath = $('#ContentPlaceHolder1_txtPath_I').val();
    var folderName = $('#txtFolderName').val();
    var location = $('#ddlLocation option:selected').text();
    alert("FolderName = "+folderName);
    alert("Location = "+location);

    //alert('calling path =' + dirPath);
    $.ajax({
        method: 'post',
        url: "GetAllFolderDetails.asmx/setDeleteFolder",

        data: {
            dirLocation: dirPath,
            folderName: folderName,
            location: location
        },

        dataType: "json",
        success: function (data) {
            location.reload(true);
            //alert("Success");

        },
        error: function (result) {
            alert("Error");
        }
    });
});

Asmx.cs код:

public void setDeleteFolder(string dirLocation,string folderName,string location)
{
    // First check Whether Other Folder or Files Exists inside the folder
    // If it Exist, Delete those files and then delete your SELECTED Folder
    string insidePath = Server.MapPath("~/" + dirLocation);
    string[] files = Directory.GetFiles(insidePath, "*", SearchOption.AllDirectories);

    foreach (string file in files)
    {
        File.Delete(file);
    }

    if (Directory.Exists(insidePath))
    {
        Directory.Delete(insidePath);

        // Once the File Directory has deleted successfully, Then Delete the record from Database
        var locationID = 0;

        switch (location)
        {
            case "Store1":
                locationID = 1;
                break;

            case "Store1":
                locationID = 2;
                break;

            case "Store1":
                locationID = 3;
                break;
        }

        string cs = ConfigurationManager.ConnectionStrings["webConfigConnectionString"].ConnectionString;

        using (SqlConnection con = new SqlConnection(cs))
        {
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;

            cmd.CommandText = "DELETE Folder WHERE StoreID = @Storeid AND FolderName = @FolderName)";

            cmd.Parameters.AddWithValue("@Storeid", 1);  // For testing I directly give the value for parameters
            cmd.Parameters.AddWithValue("@FolderName", "Sales");

            con.Open();
            cmd.ExecuteNonQuery();
        }
    }

    JavaScriptSerializer js = new JavaScriptSerializer();
    Context.Response.Write(js.Serialize("Successfully deleted"));
}

Сообщение об ошибке:

Внутренняя ошибка сервера

Примечание

Моя папка назначения Успешно удалена .Но в базе данных записи не удаляются

1 Ответ

0 голосов
/ 30 сентября 2018

изменить строку

cmd.CommandText = "DELETE Folder WHERE StoreID = @Storeid AND FolderName = @FolderName)";

на

cmd.CommandText = "DELETE from Folder WHERE StoreID = @Storeid AND FolderName = @FolderName";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...