Member 14813076 Ответов: 2

Здравствуйте мне нужна помощь с этим кодом


Здравствуйте, мне нужна помощь с этим кодом он работает все, но нужно нажать кнопку 2 А. Тиме, чтобы получить точно данные я вам все данные, и после, когда я нажимаю кнопку, я получаю то, что хочу, как исправить в один клик получить некоторые сведения

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

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim con As New SqlConnection
    Dim ds As New DataSet1
    Dim ad As New DataSet1TableAdapters.TabRestorantTableAdapter
    ad.Fill(ds.TabRestorant)
    Dim rpt As New KontrataShqip
    rpt.SetDataSource(ds)
    Form2.CrystalReportViewer1.ReportSource = rpt
    Form2.ShowDialog()
    Form2.Dispose()

    con.ConnectionString = ""
    con.Open()
    Dim da As New SqlDataAdapter("SELECT * FROM TabRestorant where [DataDasmes]='" + DateTimePicker1.Text + "' and [Restoranti]='" + ComboBox1.Text + "' ", con)
    da.Fill(DS)
    Form2.CrystalReportViewer1.RefreshReport()
    Form2.CrystalReportViewer1.SelectionFormula = "{TabRestorant.DataDasmes}='" + DateTimePicker1.Text + "' and {TabRestorant.Restoranti}='" + ComboBox1.Text + "'"
    Form2.CrystalReportViewer1.RefreshReport()

    con.Close()

End Sub

2 Ответов

Рейтинг:
0

Patrice T

Dim da As New SqlDataAdapter("SELECT * FROM TabRestorant where [DataDasmes]='" + DateTimePicker1.Text + "' and [Restoranti]='" + ComboBox1.Text + "' ", con)

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]


Member 14813076

вы думаете, что это нормально с хранимой процедурой sql


Если ComboBox2.Text = "", То

Ящик для сообщений.Шоу("sss")

Возвращать
Конец, Если


Соединение.Открыть()



Dim Command1 As New SqlCommand("D2", Соединение)

КОМАНДА1.Свойство Commandtype = Значение Commandtype.Хранимая процедура

Command1.Параметры.AddWithValue ("@Rsdf", ComboBox2.Text)
Command1.Параметры.AddWithValue("@adfe", DateTimePicker1.Text)

Дим читатель как объект sqldatareader = КОМАНДА1.Метода executereader


Дим ДТ в качестве нового объекта DataTable

dt.Load(считыватель)

DataGridView1.Источник данных = ДТ

Соединение.Закрывать()

Patrice T

Да, параметры решают проблему SQL-инъекции.
Они также работают с прямыми запросами (не хранимыми процедурами).

Member 14813076

спасибо вам мужики за эту помощь я новичок в коде

Рейтинг:
0

OriginalGriff

Вы не отправляете DataGridView ни к чему - это элемент управления, и это работа, отображающая данные для пользователя, чтобы взаимодействовать с ними, либо просматривая их, либо позволяя редактировать их.

То, что CR хочет, - это данные, стоящие за DGV-DataTable, DataSet или Collection, которые вы использовали для загрузки данных из SQL в DGV, вероятно, через его свойство DataSource.

Мы не можем дать вам этот код: мы понятия не имеем, как выглядит ваш существующий код или как он работает. Так что начните с вашего источника данных и работайте оттуда - мы не можем сделать это за вас!


Member 14813076

помогите мне с этим кодом пожалуйста

OriginalGriff

Как же так? Вы даже не используете данные, которые извлекаете из SQL!