Member 12314309 Ответов: 0

Передайте дату из gridview в другое текстовое поле страницы .


у меня есть данные в столбце Gridview have Date ,когда я передаю данные из gridview на другую страницу с помощью строки запроса ,выбрав одну строку, то дата не загружается в текстовое поле в браузере google chrome, но она отлично работает в internet explorer, любезно направьте меня

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

На сетке я использую этот запрос для выбора строк:
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string AID = GridView1.SelectedRow.Cells[1].Text;
            Response.Redirect("Daily Attendance.aspx?AID=" + AID);
        }


on another page i am using this query on page loading

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                String mycon = ("Data Source=DESKTOP-5PJ76B9;Integrated Security=SSPI;Initial Catalog=Institute");
                String myquery = "Select AID,Datetime,Outdt,Day,Days,OT,Code from HR3  where AID=" + Request.QueryString["AID"];
                SqlConnection con = new SqlConnection(mycon);
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = myquery;
                cmd.Connection = con;
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmd;
                DataSet ds = new DataSet();
                da.Fill(ds);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    TBID.Text = ds.Tables[0].Rows[0]["AID"].ToString();
                    //TBEN.Text = ds.Tables[0].Rows[0]["EmployeeName"].ToString();
                    TBIN.Text = ds.Tables[0].Rows[0]["Datetime"].ToString();
                    TBOut.Text = ds.Tables[0].Rows[0]["Outdt"].ToString();
                    TBHrs.Text = ds.Tables[0].Rows[0]["Day"].ToString();
                    TBDay.Text = ds.Tables[0].Rows[0]["Days"].ToString();
                    TBOT.Text = ds.Tables[0].Rows[0]["OT"].ToString();
                    TBEID.Text = ds.Tables[0].Rows[0]["Code"].ToString();
                }
                con.Close();

F-ES Sitecore

Если вы передаете данные в строку запроса, вы должны ее закодировать

Сервер.UrlEncode(помощь)

Next issue is that the chances that Cells[1].Text contains nothing but the date are remote, instead you should use FindControl to get the control the data is loaded into to get the actual value. Next you should use a specific date format, so use ToString on a date variable to convert it to a specific format (like yyyy-MM-dd for example) then DateTime.TryParseExact to convert that text back to a date. Next issue is your "where AID=" + .. You normally put date variables in apostrophes. Next issue is that your code is liable to sql injection attacks so you should use parameterised queries to build your sql statements rather than string concatenation.

Shashank Laxman

строку помощи = gridview1, на.SelectedRow.Клетки[1].Текст;

попробуйте использовать переменные сеанса

а потом ответ.Перенаправлять();

Richard Deeming

String myquery = "Select AID,Datetime,Outdt,Day,Days,OT,Code from HR3  where AID=" + Request.QueryString["AID"];


Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]

Shashank Laxman

Да, конкатенация SQL-запросов опасна, если в запрос входит какой-то специальный символ типа '(одинарные кавычки), то выполнение SQL-запроса вызовет исключение.Попробуйте использовать параметризованный запрос, как описано Ричардом Димингом, как использование хранимых процедур.

0 Ответов