[英]How to delete records in asp.net using ajax
我正在列出一個包含數據庫內容的頁面。 我想為其添加刪除功能。 我正在使用 asp 占位符將數據放置在頁面上。 另外我使用電話號碼作為主鍵。我嘗試搜索它。 但沒有什么對我有用。 如果我們可以使用 ajax 使用 delete 也會很棒。
這是使用 C# 和 SQL Server 使用 asp.net 的測試配方頁面。
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//Populating a DataTable from database.
DataTable dt = this.GetData();
//Building an HTML string.
StringBuilder html = new StringBuilder();
//div structure
html.Append("<div class='container contest-wrapper'>");
//dynamic divs
int row_count = dt.Rows.Count;
html.Append("<div class='col-md-12'>");
html.Append("<p>Total Entries:" + row_count + "</p>");
html.Append("</div>");
foreach (DataRow row in dt.Rows)
{
html.Append("<div class='col-md-6 main-container'>");
html.Append("<div class='single-contest'>");
html.Append("<div class='collapse methodDiv' id='" + row["PhNo"].ToString() + "'><p>" + row["DishMethod"].ToString() + "</p></div>");
html.Append("<img class='img-responsive contest-img' src='" + row["DishImg"].ToString() + "'>");
//html.Append("<a runat='server' id='" + row["PhNo"].ToString()+ "' onserverclick='Delete(" + row["PhNo"].ToString() + ")' >Delete</a>");
//html.Append("<input type='hidden' runat='server' name='hdnPhNo' value='" + row["PhNo"].ToString() + "' />");
//html.Append("<input runat='server' OnClick='Delete(" + row["PhNo"].ToString() + ")' type='submit' name='buttonDelete' value='Delete Entry' />");
//html.Append("<button ID='delete' runat='server' Text='Delete' OnClick='delete(" + row["PhNo"].ToString() + ")'>Delete</button>");
html.Append("<p><b>Dish Name: </b>");
html.Append(row["DishName"].ToString());
html.Append("</p>");
html.Append("<p><b>Uploaded By: </b>");
html.Append(row["UserName"].ToString());
html.Append("</p>");
html.Append("<p><b>Email: </b>");
html.Append(row["Email"].ToString());
html.Append("</p>");
html.Append("<p><b>Phone Number: </b>");
html.Append(row["PhNo"].ToString());
html.Append("</p>");
//html.Append("<p><b>Dish Method: </b>");
//html.Append(row["DishMethod"].ToString());
//html.Append("</p>");
html.Append("<button type='button' class='method-btn' data-toggle='collapse' onclick='setColor(event)'; data-count='1' data-target='#"+ row["PhNo"].ToString() + "'>Method</button>");
html.Append("</div>");
html.Append("</div>");
}
//dynamic divs
html.Append("</div>");
//div structure
//Append the HTML string to Placeholder.
PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
}
}
private DataTable GetData()
{
string constr = ConfigurationManager.ConnectionStrings["RecipeDataModel"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM RecipeContest"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
return dt;
}
}
}
}
}
public void delete(object sender, EventArgs e, int phNo)
{
//string phNo = hdnPhNo.Value;
//string phNo = Request["hdnPhNo"];
string connString = ConfigurationManager.ConnectionStrings["RecipeDataModel"].ConnectionString;
SqlConnection conn = null;
conn = new SqlConnection(connString);
conn.Open(); SqlCommand cmd = new SqlCommand();
cmd.CommandText = "DELETE FROM RecipeContest WHERE PhNo='" + phNo + "'";
cmd.Connection = conn;
int numberDeleted = cmd.ExecuteNonQuery();
//Display success message.
string message = "Your details have been deleted successfully.";
string script = "window.onload = function(){ alert('";
script += message;
script += "')};";
ClientScript.RegisterStartupScript(this.GetType(), "SuccessMessage", script, true);
}
我想在點擊相應的刪除按鈕后刪除一條記錄。 如果可以實現 AJax,那也很棒。
容易發生 SQL 注入
cmd.CommandText = "DELETE FROM RecipeContest WHERE PhNo='" + phNo + "'";
始終使用參數示例將是
cmd.CommandText =”Delete From RecipeContest where PhNo=@phno”
cmd.Parameter.AddWithValue(“@phno”,phno);
或者你也可以對上面的行 cmd.Parameters["@phno"].Value = phNo; 這樣做如果你想通過電話號碼刪除,其余的我覺得沒問題,我建議使用記錄 ID。 這是sql刪除的鏈接https://www.w3schools.com/sql/sql_delete.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.