Отображение ошибки во время выполнения
отображение ошибки
Server Error in '/' Application. Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS1061: 'ASP.webform1_aspx' does not contain a definition for 'GridView1_SelectedIndexChanged' and no extension method 'GridView1_SelectedIndexChanged' accepting a first argument of type 'ASP.webform1_aspx' could be found (are you missing a using directive or an assembly reference?) Source Error: Line 11: <div> Line 12: Line 13: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Line 14: BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Line 15: CellPadding="3" onselectedindexchanged="GridView1_SelectedIndexChanged" Source File: c:\Users\manish\Desktop\my vb program\WebApplication7\WebApplication7\WebForm1.aspx Line: 13
Что я уже пробовал:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.OleDb; using System.Data; namespace WebApplication7 { public partial class WebForm1 : System.Web.UI.Page { public OleDbConnection con; public OleDbCommand cmd; public OleDbDataAdapter adt; public DataSet ds; protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { fillGridData(); } } private void fillGridData() { con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\manish\Desktop\my vb program\test.accdb"); con.Open(); adt = new OleDbDataAdapter("select * from demo",con); ds=new DataSet(); adt.Fill(ds); GridView1.DataSource=ds; GridView1.DataBind(); } protected void Button1_Click(object sender, EventArgs e) { con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\manish\Desktop\my vb program\test.accdb"); con.Open(); string data1; string cname; string cmobile; string caddress; cname=(GridView1.FooterRow.FindControl("TextBox1") as TextBox).Text; cmobile=(GridView1.FooterRow.FindControl("TextBox2") as TextBox).Text; caddress=(GridView1.FooterRow.FindControl("TextBox3") as TextBox).Text; data1="insert into demo values("+ cname+",'"+ cmobile +"','"+ caddress +"')"; cmd = new OleDbCommand(data1,con); cmd.ExecuteNonQuery(); con.Close(); fillGridData(); Label4.Text ="data saved successfully"; } } }
Richard Deeming
data1="insert into demo values("+ cname+",'"+ cmobile +"','"+ caddress +"')";
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
using (OleDbConnection con = new OleDbConnection("...")) using (OleDbCommand cmd = new OleDbCommand("insert into demo values (?, ?, ?)", con) { cmd.Parameters.AddWithValue("cname", cname); cmd.Parameters.AddWithValue("cmobile", cmobile); cmd.Parameters.AddWithValue("caddress", caddress); con.Open(); cmd.ExecuteNonQuery(); }