manish7664 Ответов: 1

Отображение ошибки во время выполнения


отображение ошибки

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();
}

1 Ответов

Рейтинг:
1

F-ES Sitecore

Посмотрите на сообщение об ошибке

'ASP.webform1_aspx' does not contain a definition for 'GridView1_SelectedIndexChanged'


Что такое ищет метод под названием GridView1_SelectedIndexChanged? Посмотрите на свое определение gridview

onselectedindexchanged="GridView1_SelectedIndexChanged" 


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

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

GridView.События Selectedindexchanged (Системы.Веб.Пользовательского интерфейса.WebControls)[^]


manish7664

просто Ф-Эс