Asp .NET update database in C#
Я не могу обновить данные в своей базе данных и не узнаю свою проблему никто не может ее решить?
Что я уже пробовал:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DataSaving { public partial class updateDelete : System.Web.UI.Page { DbConnector db = new DbConnector(); protected void Page_Load(object sender, EventArgs e) { loadGrid(); } protected void loadGrid() { String query = @"SELECT [ID] ,[Name] ,[Phone] ,[Address] ,[Email] ,[Birthday] FROM [dbo].[Info]"; GridView1.DataSource = db.GetDataTable(query); GridView1.DataBind(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; loadGrid(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; loadGrid(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; loadGrid(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { Label lbl = (Label)GridView1.Rows[e.RowIndex].FindControl("Label1"); String query = @"DELETE FROM [dbo].[Info] WHERE ID='"+lbl.Text+"'"; if (db.ExecuteQuery(query) == 1) { Response.Write("alert('save successful');"); loadGrid(); } else { Response.Write("alert('save fail');"); } } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { Label lblID = (Label)GridView1.Rows[e.RowIndex].FindControl("Label1"); TextBox txtForID = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1"); TextBox txtForName = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2"); TextBox txtForPhone = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox3"); TextBox txtForAddress = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox4"); TextBox txtForEmail = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox5"); TextBox txtForBirthday = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox6"); String query = @"UPDATE [dbo].[Info] SET [Name] = '" + txtForName.Text + "' ,[Phone] = '" + txtForPhone.Text + "' ,[Address] = '" + txtForAddress.Text + "',[Email] = '" + txtForEmail.Text + "',[Birthday] = '" + txtForBirthday.Text + "' WHERE ID = '"+ txtForID + "'"; if (db.ExecuteQuery(query) == 1) { loadGrid(); } else { Response.Write("alert('fail');"); } } } }
an0ther1
Не объединяйте строки при вставке или обновлении данных, вы оставляете себя открытым для атак SQL-инъекций, вместо этого используйте параметры.
Следующая статья проекта кода поможет вам понять, что такое SQL-инъекция и как ее избежать; Ноу-хау SQL-инъекций[^]
Во-вторых, используйте свой отладчик. Ваша проблема может быть связана с разрешениями на уровне SQL DB/неправильным форматом значений (наиболее вероятная причина)/нарушениями ограничений или многими другими ошибками.
Ваш отладчик позволит вам увидеть, в чем заключается ошибка, и, скорее всего, укажет вам на решение.
Вам помогут следующие ссылки на код проекта;
10+ мощных трюков отладки с помощью Visual Studio[^]
Расширенная отладка в Visual Studio[^]
В - третьих, обработка исключений-это не то, что нужно игнорировать, вы должны обернуть весь код в блоки try/catch/finally, чтобы обеспечить соответствующую обработку ошибок-обработка ошибок является частью хорошего кодирования
Вам помогут следующие ссылки;
Обработка исключений в C# и ASP .Net[^]
Пройдя через них не стесняйтесь улучшить свой вопрос если у вас есть проблема которая не решена
с уважением
Karthik_Mahalingam
какое сообщение об ошибке вы получаете?
Laxmidhar tatwa technologies
сэр, есть некоторые многие функции . пожалуйста, дайте точку взлома в коде позади
для проблемной функции и передачи точки ошибки
ZurdoDev
Почему вы разместили весь этот код? Ты ведь знаешь, что большая часть этого не имеет отношения к твоей проблеме, верно?