Sherif Clemnt Ответов: 0

Crystal report требует входа в систему при каждой загрузке отчета с помощью C#


может ли кто-нибудь решить проблему, которая возникает каждый раз, когда я загружаю crystal report, он запрашивает информацию для входа в систему

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

<pre>  private void button1_Click(object sender, EventArgs e)
        {
            if (TxtCustomer.Text == "" && TxtSONofrom.Text == "" && TxtSONoto.Text == "" && DTSODateFrom.Text != "" && DTSODateTO.Text != "")
            {
                if (MessageBox.Show("Do You Want to Print This Report?", "YESNO", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    BrownERP.ReportViewer cr = new BrownERP.ReportViewer();
                    cr.BringToFront();
                    cr.Show();
                    BrownERP.QuatationReport QTNREP = new BrownERP.QuatationReport();
                    SqlConnection con = new SqlConnection(connectionpath);
                    con.Open();
                    SqlCommand cmd = new SqlCommand("select * from Tbl_QTN where SODate between CONVERT(DATETIME,'" + DTSODateFrom.Text + "',103) and CONVERT(DATETIME,'" + DTSODateTO.Text + "',103) ", con);
                    SqlDataAdapter sda = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    sda.Fill(ds, "Tbl_QTN");
                    QTNREP.SetDataSource(ds);
                
                    cr.CRV.ReportSource = QTNREP;
                    cr.CRV.Refresh();
                    con.Close();

                }
                else
                {
                    this.Close();
                }
            }
        }

Mycroft Holmes

Раньше вы могли вставлять и /или передавать учетные данные в отчет или использовать определенный идентификатор пользователя для всех отчетов, мы называем их функциональными идентификаторами.

Richard Deeming

SqlCommand cmd = new SqlCommand("select * from Tbl_QTN where SODate between CONVERT(DATETIME,'" + DTSODateFrom.Text + "',103) and CONVERT(DATETIME,'" + DTSODateTO.Text + "',103) ", con);


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

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

Sherif Clemnt

я думаю, что вы не поняли мой вопрос, мой SQL quary-это не проблема. каждый раз, когда я даю отчет print crystal с запросом информации для входа в систему......
после входа в систему придет отчет

Richard Deeming

Ваш код содержит критическая уязвимость системы безопасности Одна такая простая, что трехлетний ребенок может этим воспользоваться[^].

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

0 Ответов