Goran Bibic Ответов: 2

Выберите из ms SQL и вставьте в datagridview C#


Помогите мне с этой проблемой, мой код выглядит следующим образом:

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

Я попробую это сделать
private void prijavaAction() //04.04. final doradjena perfect 
{ 

{ 
SqlConnection con = new SqlConnection(cs); 

if (textBox1.Text.All(char.IsDigit)) 

{ 
string queryString = "select bar_kod, ime,pakovanje, porez_procenat,cijena_sa_porezom from roba_usluge WHERE bar_kod = '" + textBox1.Text + "'";// pronaci radnika u bazi 
using (SqlConnection connection = new SqlConnection(cs)) 
{ 
SqlCommand command = new SqlCommand(queryString, connection); 
connection.Open(); 
SqlDataReader reader = command.ExecuteReader(); 


if (reader.Read()) 

{ 
//insert into datagrid1 
} 
else 
{ 

MessageBox.Show("Bar kod not exist!", "Obavještenje", MessageBoxButtons.OK, MessageBoxIcon.Information); 
textBox1.Text = ""; 
} 
} 

}

Goran Bibic

Я стараюсь Тхи

частная пустота prijavaAction() //04.04. final doradjena perfect
{

{
SqlConnection con = новый SqlConnection(cs);

if (textBox1.Text.All(char.IsDigit))

{
строка строка запроса = "выбрать bar_kod, име,pakovanje, porez_procenat,cijena_sa_porezom от roba_usluge где bar_kod = '" + текстовое поле textbox1.Текст + "'";// pronaci radnika U в Бацзы
используя (sqlconnection для подключения = новое sqlconnection(КС))
{
Команда SqlCommand = новая команда SqlCommand(строка запроса, соединение);
соединение.Открыть();
SqlDataReader reader = команда.Метода executereader();


если (читатель.читать())

{
//вставить в datagrid1
}
еще
{

Ящик для сообщений.Шоу("бар код не существует!", "Obavještenje", MessageBoxButtons.Хорошо, MessageBoxIcon.Информация);
текстовое поле textbox1.Текст = "";
}
}

}

Afzaal Ahmad Zeeshan

И это не работает?

0x01AA

Извините, Горан, на этот раз я отметил ваш вопрос как "не вопрос", и кстати, я был не первым, кто это сделал....

Bryian Tan

Почему SqlDataReader, а не SqlDataAdapter?

SqlDataAdapter da=new SqlDataAdapter(command); 
        DataTable dt=new DataTable();
        da.Fill(dt);

 if (dt.Rows.Count > 0)
        {
            dataGridView1.DataSource = dt;
            dataGridView1.DataBind();
        }
else {
   MessageBox.Show("Bar kod ne postoji!", "Obavještenje", MessageBoxButtons.OK, MessageBoxIcon.Information);
textBox1.Text = "";

}

2 Ответов

Рейтинг:
7

kanangandhi

GLOBALVARS.dt = new DataTable();

           if (GLOBALVARS.dt.Columns.Count == 0)
           {
               GLOBALVARS.dt.Columns.Add("bar_kod");
               GLOBALVARS.dt.Columns.Add("ime");
               GLOBALVARS.dt.Columns.Add("cijena_sa_porezom");

           }

  SqlConnection con = new SqlConnection(cs);

           if (textBox1.Text.All(char.IsDigit))

           {
               string queryString = "select bar_kod, ime, cijena_sa_porezom from roba_usluge WHERE bar_kod = '" + textBox1.Text + "'";


               using (SqlConnection connection = new SqlConnection(cs))
               {
                   SqlCommand command = new SqlCommand(queryString, connection);
                   connection.Open();
                   SqlDataReader reader = command.ExecuteReader();

                   ;
                   while (reader.Read())
                   {
                       if (reader.HasRows)
                       {
                           DataRow dr = GLOBALVARS.dt.NewRow();
                           dr["bar_kod"] = reader["bar_kod"].ToString();
                           dr["ime"] = reader["ime"].ToString();
                           dr["cijena_sa_porezom"] = reader["cijena_sa_porezom"].ToString();

                           GLOBALVARS.dt.Rows.Add(dr);

                           dataGridView1.DataSource = GLOBALVARS.dt;
                       }

                   }

                   if (GLOBALVARS.dt.Rows.Count == 0)
                   {
                       MessageBox.Show("Bar kod not exist!", "Obavještenje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                       textBox1.Text = "";

                   }
               }


           }


Goran Bibic

Что такое GLOBALVARS? Ошибка...как это определить?

[no name]

публичный статический класс GLOBALVARS
{
публичный статический DataTable dt;

}

Goran Bibic

Его работа, всего лишь одна простая задача. Просто добавьте одну строку в datagrid. Если есть две вещи, есть только одна строка и все меняется?

Нужно если есть 5 вещей, то быть 5 рядами. Если иметь дело только ++ качество. Надеюсь понять?

Goran Bibic

Второй вопрос, у меня есть существующая datagrid со значениями bar_kod, ime, cijena_sa_porezom.
Почему это?

GLOBALVARS.dt = новый DataTable();

if (GLOBALVARS.dt.Columns.Количество == 0)
{
GLOBALVARS.dt.Columns.Добавить("bar_kod");
GLOBALVARS.dt.Columns.Добавить("ime");
GLOBALVARS.dt.Columns.Добавить("cijena_sa_porezom");

}

[no name]

Это необходимо, в то время как объект DataTable имеет значение null.

Рейтинг:
1

Afzaal Ahmad Zeeshan

Это первое, что обычно делает любой учебник по базам данных; покажите, как визуализировать табличные данные в сетке.

Следуйте по предыдущему вопросу, Отображение формы данных sql db в datagridview с помеченными столбцами[^] , и начните с "связанных вопросов", в правой части этого вопроса, а также. Есть еще несколько вопросов, которые отвечают на тот же вопрос.

Эта краткая статья также может вам помочь, Пошаговое руководство: отображение данных из базы данных SQL Server в элементе управления DataGrid | Microsoft Docs[^]

Редактировать
Предоставьте код, который вы пробовали, а также комментарий, который вы сделали. Вы хотите убедиться, что запись существует, для представления таблицы данных и только для рендеринга записей она есть.
В этом случае запрос корректен и, скорее всего, будет извлекать данные, если имена столбцов, таблицы и соединения верны, а также код подвергается SQL-инъекции. Я только что написал ответ здесь, Атаки Sql-инъекций возможны с использованием файла resource(.resx) [^] , ваш код, скорее всего, будет.

Код для блока reader.Read() это уже несколько раз делилось в статьях и ссылках, которыми я поделился в своем ответе выше.


Goran Bibic

Не отображается в datagrid...нужно проверить, где bar_kod = '" + textBox1.Text,,

если придется вставить в datagrid
Какая-то помощь?

Afzaal Ahmad Zeeshan

Тогда зачем вам нужно использовать SQL-запрос в коде C#? Вы можете написать хранимую процедуру, которая проверяет, является ли штрих-код правильным или нет. Конечно, это требует, чтобы вы показали некоторый код, который у вас есть.

Кроме того, конкатенация-это плохая практика в SQL, она приведет к SQL-инъекции. Я только что написал ответ на этот вопрос здесь, https://www.codeproject.com/Answers/1264075/Sql-injection-attacks-possible-using-resource-resx

Goran Bibic

Да, если bar_code в порядке, вставьте значения в datagrid1

Я пробую это, просто читаю, никакой вставки в datagreid1

частная пустота prijavaAction()
{

{
SqlConnection con = новый SqlConnection(cs);

if (textBox1.Text.All(char.IsDigit))

{
строка строка запроса = "выбрать bar_kod, име, cijena_sa_porezom от roba_usluge где bar_kod = '" + текстовое поле textbox1.Текст + "'";// pronaci radnika U в Бацзы
используя (sqlconnection для подключения = новое sqlconnection(КС))
{
Команда SqlCommand = новая команда SqlCommand(строка запроса, соединение);
соединение.Открыть();
SqlDataReader reader = команда.Метода executereader();


если (читатель.читать())

{
for (int i = 0; i < dataGridView1.Rows.Граф; i++)
{

dataGridView1.Rows[i].Ячейки["bar_kod"].Value = reader["bar_kod"].Метод toString();
dataGridView1.Rows[i].Ячейки["naziv_artikla"].Value = reader["ime"].Метод toString();
dataGridView1.Rows[i].Ячейки["cijena"].Value = reader["cijena_sa_porezom"].Метод toString();
}



читатель.Закрывать();


}
еще
{
Ящик для сообщений.Шоу("Bar kod ne postoji!", "Obavještenje", MessageBoxButtons.Хорошо, MessageBoxIcon.Информация);
текстовое поле textbox1.Текст = "";


}
}

}

еще
{
Ящик для сообщений.Шоу("Bar kod ne postoji!", "Obavještenje", MessageBoxButtons.Хорошо, MessageBoxIcon.Информация);
текстовое поле textbox1.Текст = "";
}





}
}

Afzaal Ahmad Zeeshan

И в чем же тут проблема?

Goran Bibic

Я пытаюсь это сделать но просто read...no вставить в datagridviuew1

частная пустота prijavaAction() //04.04. final doradjena perfect
{

{
SqlConnection con = новый SqlConnection(cs);

if (textBox1.Text.All(char.IsDigit))

{
строка строка запроса = "выбрать bar_kod, име, cijena_sa_porezom от roba_usluge где bar_kod = '" + текстовое поле textbox1.Текст + "'";// pronaci radnika U в Бацзы
используя (sqlconnection для подключения = новое sqlconnection(КС))
{
Команда SqlCommand = новая команда SqlCommand(строка запроса, соединение);
соединение.Открыть();
SqlDataReader reader = команда.Метода executereader();


если (читатель.читать())

{
for (int i = 0; i < dataGridView1.Rows.Граф; i++)
{

dataGridView1.Rows[i].Ячейки["bar_kod"].Value = reader["bar_kod"].Метод toString();
dataGridView1.Rows[i].Ячейки["naziv_artikla"].Value = reader["ime"].Метод toString();
dataGridView1.Rows[i].Ячейки["cijena"].Value = reader["cijena_sa_porezom"].Метод toString();
}



читатель.Закрывать();


}
еще
{
Ящик для сообщений.Шоу("Bar kod ne postoji!", "Obavještenje", MessageBoxButtons.Хорошо, MessageBoxIcon.Информация);
текстовое поле textbox1.Текст = "";


}
}

}

еще
{
Ящик для сообщений.Шоу("Bar kod ne postoji!", "Obavještenje", MessageBoxButtons.Хорошо, MessageBoxIcon.Информация);
текстовое поле textbox1.Текст = "";
}





}
}