Deekshaa Singh Chauhan Ответов: 2

Как удалить данные из базы данных с помощью gridview в ASP.NET


Это мой код в файле .aspx, который я пишу:

&ЛТ;в ASP:GridView в идентификатор="ГРД" атрибут runat="сервер" AutoGenerateColumns="false" - в OnRowDataBound="grd_RowDataBound" ширина="100%" CssClass="сетка-вид"и GT;
<колонки>
<asp:TemplateField HeaderText="название компании">
<itemtemplate>
&ЛТ;АСП:метка идентификатор="lblCompanyName" атрибут runat="сервер" текст=в'<%# Ивала("название") %&ГТ; в'>
&ЛТ;%-- &ЛТ;АСП:метка идентификатор="Метка1" атрибут runat="сервер" текст=в'<%# Ивала("FromDate","{0:ДД-МММ-гггг}") %&ГТ; в'>   
&ЛТ;АСП:метка идентификатор="Метка2" атрибут runat="сервер" текст=в'<%# Ивала("современной","{0:ДД-МММ-гггг}") %&ГТ; в'>--%&ГТ;

<edititemtemplate>
название компании: &ЛТ;АСП:текстовое поле с ID="txtCompanyName" атрибут runat="сервер" текст=в'<%# Ивала("название") %&ГТ; в'>
&ЛТ;как ASP:RequiredFieldValidator идентификатор="rfvCompanyName" атрибут runat="сервер" ControlToValidate="txtCompanyName" SetFocusOnError="правда" сообщение об ошибке="*" ValidationGroup="страхование"и GT;
Номер Полиса На Кражу Со Взломом : &ЛТ;АСП:текстовое поле с ID="txtBurglaryPolicyNumber" атрибут runat="сервер" текст=в'<%# Ивала("BurglaryPolicyNumber") %&ГТ; в'>
&ЛТ;как ASP:RequiredFieldValidator идентификатор="rfvPolicyNumber" атрибут runat="сервер" ControlToValidate="txtBurglaryPolicyNumber" SetFocusOnError="правда" сообщение об ошибке="*" ValidationGroup="страхование"и GT;
Сумма Покрытия Кражи Со Взломом: &ЛТ;АСП:текстовое поле с ID="txtBurglaryCoverAmount" атрибут runat="сервер" текст=в'<%# Ивала("BurglaryCoverAmount") %&ГТ; в'>
&ЛТ;как ASP:RequiredFieldValidator идентификатор="rfvCoverAmount" атрибут runat="сервер" ControlToValidate="txtBurglaryCoverAmount" SetFocusOnError="правда" сообщение об ошибке="*" ValidationGroup="страхование"и GT;
Номер Противопожарной Политики : &ЛТ;АСП:текстовое поле с ID="txtFirePolicyNumber" атрибут runat="сервер" текст=в'<%# Ивала("FirePolicyNumber") %&ГТ; в'>
&ЛТ;как ASP:RequiredFieldValidator идентификатор="RequiredFieldValidator1" атрибут runat="сервер" ControlToValidate="txtFirePolicyNumber" SetFocusOnError="правда" сообщение об ошибке="*" ValidationGroup="страхование"и GT;
Количество Огневого Прикрытия: &ЛТ;АСП:текстовое поле с ID="txtFireCoverAmount" атрибут runat="сервер" текст=в'<%# Ивала("FireCoverAmount") %&ГТ; в'>
&ЛТ;как ASP:RequiredFieldValidator идентификатор="RequiredFieldValidator2" атрибут runat="сервер" ControlToValidate="txtBurglaryCoverAmount" SetFocusOnError="правда" сообщение об ошибке="*" ValidationGroup="страхование"и GT;
с сегодняшнего дня : &ЛТ;АСП:текстовое поле с ID="txtFromDate" атрибут runat="сервер" текст=в'<%# Ивала("FromDate") %&ГТ; в'>
&ЛТ;СС1:CalendarExtender идентификатор="CalDate" атрибут runat="сервер" TargetControlID="txtFromDate" формат="ММ/ДД/гггг"и GT;
&ЛТ;как ASP:RequiredFieldValidator идентификатор="rfvFromDate" атрибут runat="сервер" ControlToValidate="txtFromDate" SetFocusOnError="правда" сообщение об ошибке="*" ValidationGroup="страхование"и GT;
датировать : &ЛТ;АСП:текстовое поле с ID="txtToDate" атрибут runat="сервер" текст=в'<%# Ивала("современной") %&ГТ; в'>
&ЛТ;СС1:CalendarExtender идентификатор="CalendarExtender1" атрибут runat="сервер" TargetControlID="txtToDate" формат="ММ/ДД/гггг"и GT;
&ЛТ;как ASP:RequiredFieldValidator идентификатор="rfvTodate" атрибут runat="сервер" ControlToValidate="txtToDate" SetFocusOnError="правда" сообщение об ошибке="*" ValidationGroup="страхование"и GT;



<asp:TemplateField HeaderText="просмотр/обновление">
<itemtemplate>
&ЛТ;как ASP:ImageButton с ИД="imgBtnshow" атрибут runat="сервер" CausesValidation="ложных"
CommandArgument='&л;%# Ивала("InsuranceId") %&ГТ;' Url_изображения="~/изображения/buttonedit.ПНГ" функция onclick="imgBtnshow_Click" /&ГТ;

<edititemtemplate>
&ЛТ;как ASP:ImageButton с ИД="imgBtnEdit" атрибут runat="сервер" CommandArgument='&л;%# Ивала("InsuranceId") %&ГТ;' Url_изображения="~/изображения/buttonsave.ПНГ" функция onclick="imgBtnEdit_Click" ValidationGroup="WarehouseUpdate" /&ГТ;
<asp:ImageButton ID="imgBtnCancel" runat="сервер"
Url_изображения="~/изображения/1350368827_save_delete.ПНГ" функция onclick="imgBtnCancel_Click"/&ГТ;

<HeaderStyle Width="50px" />
<ItemStyle Width="50px" />

<asp:TemplateField HeaderText="удалить">
<itemtemplate>
&ЛТ;как ASP:ImageButton с ИД="imgBtnDelete" атрибут runat="сервер" CommandArgument='&л;%# Ивала("InsuranceId") %&ГТ;' Url_изображения="~/изображения/buttondelete.ПНГ" функция onclick="imgBtnDelete_Click" OnClientClick="возвращение Подтвердить('вы уверены, что хотите удалить эту запись.')"/&ГТ;

<%--ValidationGroup="Страхование"--%>
&ЛТ;HeaderStyle ширина="50 пикселей" по горизонтали свойство verticalalign="средний" /&ГТ;
<ItemStyle Width="50px" HorizontalAlign="Center" VerticalAlign="Top" />




И я пишу этот код в файле .aspx.cs на событии imgBtnDelete_Click:


protected void imgBtnDelete_Click(object sender, ImageClickEventArgs e)
{
    string confirmValue = Request.Form["confirm_value"];
    if (confirmValue == "Yes")
    {
        ImageButton btn = (ImageButton)sender;
        Int64 Id = Convert.ToInt64(btn.CommandArgument);
        InsuranceCompany obj = new InsuranceCompany();
        obj.InsuranceCompanyId = Id;
        int result = obj.InsuranceCompanyDelete(Id);
        if (result > 0)
        {
            string popupScript = "$.prompt('Record Deleted Successfully.');";
            ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "clientScript", popupScript, true);
            fillgrid();
            //Response.Redirect("~/Admin/InsuranceCompany.aspx");
        }
}


Что я уже пробовал:

но этот код не удаляет данные из базы данных, и я не знаю, как это сделать, и что я знаю сейчас. где проблема в моем коде? как мне ее решить.

здесь в этом проекте мы используем хранимую процедуру для удаления данных и bussinessLogicLayer где мы определяем это

F-ES Sitecore

Вызывается ли imgBtnDelete_Click?
Что находится в confirmValue?
Что такое идентификатор?
Что же получается в результате?
Работает ли страховая компания?
Есть ли у вас в базе данных строка, которая соответствует этому идентификатору?

Deekshaa Singh Chauhan

да у меня есть insuranceId как id и у меня есть данные которые отображаются в gridview bt которые не удаляются

2 Ответов

Рейтинг:
7

Deekshaa Singh Chauhan

Теперь это работает, я сделал эти изменения здесь:-

В файле .aspx:

<asp:GridView ID="grd" runat="server" AutoGenerateColumns="False" OnRowDataBound="grd_RowDataBound" Width="100%" CssClass="grid-view" OnRowDeleting="grd_RowDeleting" DataKeyNames="InsuranceId">
 
<asp:TemplateField HeaderText="Delete">
<itemtemplate>
<asp:ImageButton ID="btnDelete" runat="server" AlternateText="Delete" CommandName="Delete" CommandArgument='<%# Eval("InsuranceId") %>' ImageUrl="~/Images/buttondelete.png" CausesValidation="false" >
</itemtemplate>






В файле .aspx.cs:

protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
bool IsDeleted = false;
try
{
//int InsuranceId = Convert.ToInt32(grd.DataKeys[e.RowIndex].Value.ToString());
int InsuranceId = Convert.ToInt32(grd.DataKeys[e.RowIndex].Values[0]);
string constr = WebConfigurationManager.ConnectionStrings["WarehouseWebsiteString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("DELETE FROM tblInsuranceCompany WHERE InsuranceId = @InsuranceId"))
{
cmd.Parameters.AddWithValue("@InsuranceId", InsuranceId);
cmd.Connection = con;
con.Open();
IsDeleted = cmd.ExecuteNonQuery() > 0;
con.Close();
}
fillgrid();
}
}
catch(Exception ex)
{}
if (IsDeleted)
{
//record has been deleted successfully!
//call here gridview bind method and replace it..
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Page Succesfully deleted');window.location ='InsuranceCompany.aspx';", true); ;
fillgrid();
}
else
{
}


Рейтинг:
0

alexvw

Здравствуйте Deekshaa,

С помощью предоставленного вами примера кода другие программисты не могут знать, что реализует ваш объект InsurranceCompany.

 InsuranceCompany obj = new InsuranceCompany();
...
obj.InsuranceCompanyDelete(Id);

Мы могли бы предположить, что ваш объект "InsuranceCompanyDelete"метод фактически выполняет необходимые шаги для подключения к вашей БД и выполнения соответствующего оператора delete с использованием предоставленного вами "идентификатора". Но, предположим, это все, что мы можем сделать.

Предложения:

а) убедитесь, что вы действительно проходите действительный экзамен. Айди к вашим услугам InsuranceCompanyDelete метод.
б) убедитесь, что указанный метод действительно подключается к вашей БД и выполняет ожидаемую инструкцию delete.

Ваше здоровье!