Как вывести таблицу sql в windows form

Вывод информации из базы данных в DataGridView. Вывод производится на Windows Forms с применением языка программирования C#.

В Windows Forms табличные данные удобно выводить с помощью элемента управления DataGridView. В статье покажем, как это сделать на примере таблицы из базы данных и языка программирования C#.

Исходные данные для DataGridView

Имеется таблица в базе данных Microsoft SQL Server с информацией о факультетах университета.

Данные для DataGridView

Эти данные будем выводить в элемент DataGridView, расположенный на Windows Forms.

Программа с DataGridView

Создадим новый проект Windows Forms на Visual C# в Visual Studio. На форме расположим элемент управления DataGridView — для этого перетащите его с «Панели элементов» на макет окна.

Добавим в DataGridView три столбца под три соответствующих колонки из таблицы БД с помощью кнопки «Правка столбцов».

Добавление столбцов в DataGridView

Для наглядности назовём их так же, как называются поля в таблице базы данных.

Форма с DataGridView

Переходим к написанию кода. Вся функциональность по чтению данных из БД и их последующему выводу в DataGridView реализована в методе LoadData().

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

public partial class Form1 : Form

{

    public Form1()

    {

        InitializeComponent();

        LoadData();

    }

    private void LoadData()

    {

        string connectString = «Data Source=.\SQLEXPRESS;Initial Catalog=LSTU_Schedule_autumn20172018;» +

            «Integrated Security=true;»;

        SqlConnection myConnection = new SqlConnection(connectString);

        myConnection.Open();

        string query = «SELECT * FROM Faculty ORDER BY fac_id»;

        SqlCommand command = new SqlCommand(query, myConnection);

        SqlDataReader reader = command.ExecuteReader();

        List<string[]> data = new List<string[]>();

        while (reader.Read())

        {

            data.Add(new string[3]);

            data[data.Count 1][0] = reader[0].ToString();

            data[data.Count 1][1] = reader[1].ToString();

            data[data.Count 1][2] = reader[2].ToString();

        }

        reader.Close();

        myConnection.Close();

        foreach (string[] s in data)

            dataGridView1.Rows.Add(s);

    }

}

Разберём подробно код на C#.

Объявление переменной со строкой подключения к базе данных:

string connectString = «Data Source=.\SQLEXPRESS;Initial Catalog=LSTU_Schedule_autumn20172018;» +

    «Integrated Security=true;»;

Создание объекта для подключения к БД:

SqlConnection myConnection = new SqlConnection(connectString);

Соединение с БД:

Запрос на получение данных из таблицы с факультетами:

string query = «SELECT * FROM Faculty ORDER BY fac_id»;

Создание объекта, выполняющего запрос к БД:

SqlCommand command = new SqlCommand(query, myConnection);

Получение объекта для чтения данных из БД, содержащих несколько строк и столбцов:

SqlDataReader reader = command.ExecuteReader();

Создание списка List для хранения полученных данных. Каждая строка будет представлена элементом списка, а столбец — элементом строкового массива string[]:

List<string[]> data = new List<string[]>();

В цикле построчно читаем данные строки (каждого её столбца), предварительно создав новый элемент списка List:

while (reader.Read())

{

    data.Add(new string[3]);

    data[data.Count 1][0] = reader[0].ToString();

    data[data.Count 1][1] = reader[1].ToString();

    data[data.Count 1][2] = reader[2].ToString();

}

Закрываем SqlDataReader:

Разрываем соединение с базой данных:

В цикле foreach добавляем новые строки в DataGridView с помощью метода Add. Элементами строки являются столбцы, заполняемые из строкового массива, содержащегося в конкретном элементе списка List:

foreach (string[] s in data)

    dataGridView1.Rows.Add(s);

Запустим программу и посмотрим её в работе.

Вывод данных в DataGridView из БД на C#

Если у Вас остались какие-либо вопросы, то Вы можете посмотреть видеоурок, в котором мы подробно разбираем создание данной программы, выводящей данные из БД в DataGridView с помощью языка C#:

Сидел 2 часа,пробовал различные варианты как соединить их и вывести в форме таблицу,но ни как не идёт. Кто в этом хорошо разбирается — помоги) Укажи на ошибку,объясни или скинь исправленный код, буду благодарен.
Вариант 1:

Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
 
namespace Kursach
{
    public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            MySqlConnection con = new MySqlConnection("Server=127.0.0.1;Database=SQL;Uid=root;Pwd=root");
            MySqlCommand sqlCom = new MySqlCommand("SELECT * FROM SpecialSquad", con);
            try
            {
                con.Open();
                sqlCom.ExecuteNonQuery();
                MySqlDataAdapter da = new MySqlDataAdapter(sqlCom);
                DataTable dt = new DataTable();
                da.Fill(dt);
                // теперь dt наполнена данными из таблицы table
                dataGridView_SpecialSquad.DataSource = dt;
            }
            catch (Exception ex)
            {
 
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
        }

Вариант 2(его я увидел в видеоуроке на ютюб(вот ссылка:https://www.youtube.com/watch?v=vrmE98BGVdw)):

Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
 
namespace Kursach
{
    public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
        }
 
        
       MySqlConnection conn = new MySqlConnection("data source=localhost;port=3306;Initial Catalog='SQL';username=root;password=");
 
        private void Form1_Load(object sender, EventArgs e)
        {
            string selectQuery = "SELECT * FROM SpecialSquad";
            DataTable table = new DataTable();
            MySqlDataAdapter adapter = new MySqlDataAdapter(selectQuery, conn);
            adapter.Fill(table);
            dataGridView_SpecialSquad.DataSource = table;
        }

В обоих случаях таблицу не выдаёт(

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

Приветствую всех, в этом примере я покажу как просто создать приложения позволяющее, изменять, обновлять и удалять запись в базе данных SQL.

Шаг 1: Откройте менеджер Sql Server, нажмите на новую базу данных . Дайте базе данных имя «dbSchool».

Шаг 2: Теперь создайте таблицу в базе данных, вы можете назвать таблицу как хотите, здесь я назвал его “Student”. Существует три столбца в таблице IDFirstName и LastName, как показано ниже

Дизайн Формы:

Код C# :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient; //For SQL Connection

namespace Пример_SQL_Server_приложения

{

    public partial class Form1 : Form  //www.nookery.ru

    {

        public Form1()

        {

            InitializeComponent();

        }

        SqlConnection con;

        SqlDataAdapter da;

        SqlCommand cmd;

        DataSet ds;

        void GetList()

        {

            con = new SqlConnection(@»Data Source=.SQLEXPRESS; Initial Catalog=dbSchool; Integrated Security=True»);

            da = new SqlDataAdapter(«Select *From Student», con);

            ds = new DataSet();

            con.Open();

            da.Fill(ds, «Student»);

            dataGridView1.DataSource = ds.Tables[«Student»];

            con.Close();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            GetList();

        }

        private void button1_Click(object sender, EventArgs e) // Insert Button

        {

            cmd = new SqlCommand();

            con.Open();

            cmd.Connection = con;

            cmd.CommandText = «insert into Student(ID,FirstName,LastName) values (« + textBox1.Text + «,'» + textBox2.Text + «‘,'» + textBox3.Text + «‘)»;

            cmd.ExecuteNonQuery();

            con.Close();

            GetList();

        }

        private void button2_Click(object sender, EventArgs e)//Update Button

        {

            cmd = new SqlCommand();

            con.Open();

            cmd.Connection = con;

            cmd.CommandText = «update Student set FirstName='» + textBox2.Text + «‘,LastName='» + textBox3.Text + «‘ where ID=» + textBox1.Text + «»;

            cmd.ExecuteNonQuery();

            con.Close();

            GetList();

        }

        private void button3_Click(object sender, EventArgs e)//Delete Button

        {

            cmd = new SqlCommand();

            con.Open();

            cmd.Connection = con;

            cmd.CommandText = «delete from Student where ID=» + textBox1.Text + «»;

            cmd.ExecuteNonQuery();

            con.Close();

            GetList();

        }

    }

}

how to retrieve data from MySQL dataTable and display it in a table format using C# windows application.

Here, we will see how to use Data Grid View along with data from SQL Server Database using SQL Data Adapter and Data Table in Windows Forms Application with C#.

For doing this we have to do two main things that are

  • Creating a database table in MySQL workbench
  • Fetching the data from MySQL table into C# WinForms in a table format

Creating a database table in MySQL workbench

First, we have to create a table in the MySQL database for this we have to follow these simple steps.

Step 1:

first, we have to create a table in our MySQL workbench if you have the MySQL workbench and MySQL server installed in your system then it will be good otherwise first you have to download and install them with all the required things then move to the next step.

Step 2:

Open your MySQL workbench > click on create schema > the Apply to SQL script page will open >give the name to your schema > click on apply > again click on apply now the SQL script page will show you the output that “your SQL script is successfully applied to the database”> close the SQL script.

Step 3:

Click on the schema/Database which you have named in the above step it will be showing on the left side of the screen > just right click on the schema/database > right-click on Tablesclick on create table > give the name to your table > double click under the white section of table name > add columns and give the name and data type for those columns > click on apply.

Step 4:

Now add data into your table > from the left sidebar click on the table name in which you have to add data > from given three options choose last option that has a table icon > the table window will open > then type the data in given columns one by one adding the rows when you complete one row by entering the data in all fields just click on enter button so the cursor will move to next row. By doing this complete your table with the data you want to enter > click on apply button.

Step 5:

A new window of SQL script will open > click on apply > next click on finish. Our table is now successfully created containing data.

Fetching data from MySQL table into C# Windows forms

For fetching the data from our MySQL database table into our C# Windows Form Application we also have to follow some steps here these are-

Step 1:

Open visual studio > go to File menu > New project > in visual C# > add Windows Form Application C# > add DataGridView control from toolbox by dragging it into form.

Step 2:

In the first step, we have to download and install the MySQL Connector after that it needs to be connected with the MySQL database.

Download the MySQL Connector > then install the MySQL Connector >  when installation is complete open your Windows Explorer > find the MySql installation in the Program Files folder of Windows drive > here we will see a folder for MySQL Connector > inside that we will find the MySQL.data.dll > copy it inside the BIN folder of our project.

Step 3:

Now we have to import the following namespaces in our application.

using System.Data;
using MySql.Data.MySqlClient;

Step 4:

In this step, we have to Bind the DataGridView with our records from MySQL Database Table.

If you know the ADO.Net then using MySql will be simpler for you because the MySql Connector classes have very similar names to ADO.Net classes. For example, in ADO.Net we have SqlConnection class and in MySql here is MySqlConnection class. On the Form Load event of the page, the DataGridView control is located it will hold the records from the MySql database using a DataTable.

private void Form1_Load(object sender, EventArgs e)
using System.Data;
using MySql.Data.MySqlClient;
{
this.BindGrid();
}
private void BindGrid()
{
string conString = @"Data Source=localhost;port=3306;Initial Catalog=AjaxSamples;User Id=Nida;password=pass@123";
using (MySqlConnection con = new MySqlConnection(conString))
{
using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM employee", con))
{
cmd.CommandType = CommandType.Text;
using (MySqlDataAdapter sda = new MySqlDataAdapter(cmd);
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
dataGridView1.DataSource = dt;
    }
   }
  }
 }
}

Output:

Now you can see that our table data is retrieving or fetching into our C# window form and set into Data Grid View.

By doing these steps we can simply connect our MySQL table with our C# WinForms and as result, the grid view will show the data of our MySQL table in c# in a table manner.

Есть приложение Windows Forms C# для работы с локальной базой данных. Есть база данных на 4 таблицы. В приложении есть вкладка SELECT которая выводит в окне данные из всех таблиц. В данном случае приложение выводит данные только 1 таблицы (Product). А мне нужно чтоб отображались все таблицы! К сожалению, написать код или изменить существующий не хватает знаний. Буду рад услышать любые мысли по этому поводу. Скрины и фрагмент кода прилагаю.
введите сюда описание изображения

private async void Form1_Load(object sender, EventArgs e)
{
   string connectionString = @"Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=|DataDirectory|DataBaseMusicShop.mdf;Integrated Security=True";
   sqlConnection = new SqlConnection(connectionString);
   await sqlConnection.OpenAsync();

   SqlDataReader sqlReader = null;
   SqlCommand command = new SqlCommand("SELECT * FROM [Product]", sqlConnection);

   try
   {
       sqlReader = await command.ExecuteReaderAsync();
       while (await sqlReader.ReadAsync())
       {
           listBox1.Items.Add(Convert.ToString(sqlReader["id_product"]) + "  " + Convert.ToString(sqlReader["p_firm"]) + "  " + Convert.ToString(sqlReader["p_type"]) + "  " + Convert.ToString(sqlReader["p_price"]));
       }
   }
   catch (Exception ex)
   {
       MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
   }
   finally
   {
        if (sqlReader != null)
                    sqlReader.Close();
   }
}

Александр Муксимов's user avatar

задан 12 июн 2019 в 14:31

Денис Денис's user avatar

Чтобы получить имена всех таблиц, не прописывая их в коде, можно сделать запрос к схеме БД. Для этого существует метод DbConnection.GetSchema. Провайдер ADO.NET для SQL Server предоставляет схему Tables, содержащую имена таблиц.

Простейший код вывода всех таблиц БД в ListBox’ах будет выглядеть как-то так:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Threading.Tasks;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Linq;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {        
        public Form1()
        {
            InitializeComponent();            
        }        

        public static IEnumerable<string> QueryTableNames(DbConnection con)
        {            
            //получение списка всех таблиц в БД
            DataTable dtSchema = con.GetSchema("Tables");

            foreach (DataRow row in dtSchema.Rows)
            {
                if ((string)row["TABLE_TYPE"] == "BASE TABLE")
                {
                    yield return (string)row["TABLE_NAME"];
                }
            }
        }

        public static async Task<DataTable> QueryTable(DbCommand cmd,string name)
        {             
            //получение таблицы
            DbDataReader rd = await cmd.ExecuteReaderAsync();
            using (rd)
            {
                DataTable dt = new DataTable();
                await Task.Run(() => { dt.Load(rd); });                                
                dt.TableName = name;
                return dt;
            }            
        }

        public static void DisplayTables(Control control, IEnumerable<DataTable> tables)
        {
            //вывод набора таблиц в указанном элементе управления сontrol

            //создадим FlowLayoutPanel для группировки элементов в столбик
            FlowLayoutPanel pan = new FlowLayoutPanel();            
            pan.FlowDirection = FlowDirection.TopDown;            
            pan.Dock = DockStyle.Fill;

            foreach (DataTable t in tables)
            {
                //создадим GroupBox с именем таблицы
                GroupBox gb = new GroupBox();
                gb.Text = "Table [" + t.TableName+"]";
                gb.Width = 400;
                gb.Height = 150;

                //создадим ListBox для отображения данных таблицы
                ListBox lb = new ListBox();                
                lb.Dock = DockStyle.Fill;

                foreach (DataRow row in t.Rows)
                {                    
                    lb.Items.Add(String.Join(" ", row.ItemArray));
                }

                gb.Controls.Add(lb);
                pan.Controls.Add(gb);
            }

            control.Controls.Clear();
            control.Controls.Add(pan);
        }

        public async Task DisplayBase()
        {
            string connstr = @"...";
            SqlConnection con = new SqlConnection(connstr);

            using (con)
            {
                await con.OpenAsync();

                //загружаем схему
                IEnumerable<string> table_names = QueryTableNames(con);
                List<DataTable> tables = new List<DataTable>(table_names.Count());
                SqlCommand cmd;

                //загружаем данные
                foreach (string t in table_names)
                {
                    cmd = new SqlCommand("SELECT * FROM [" + t + "]", con);
                    tables.Add(await QueryTable(cmd, t));
                }

                //отображаем данные в элементе panel1
                panel1.SuspendLayout();
                DisplayTables(panel1, tables);
                panel1.ResumeLayout();
            }
        }

        private async void Form1_Load(object sender, EventArgs e)
        {                                    
            await DisplayBase();              
        }              
    }  
}

ответ дан 13 июн 2019 в 5:19

MSDN.WhiteKnight's user avatar

MSDN.WhiteKnightMSDN.WhiteKnight

20k6 золотых знаков35 серебряных знаков80 бронзовых знаков

Содержание

  1. Windows forms sql вывод таблицы
  2. Программирование на C, C# и Java
  3. Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
  4. Вывод данных в DataGridView из БД на C#
  5. Исходные данные для DataGridView
  6. Программа с DataGridView
  7. Вывод данных из БД в DataGridView
  8. 3 ответа 3
  9. Вывести таблицу на форму
  10. BestProg
  11. Вывод таблицы базы данных Microsoft Access в компоненте dataGridView
  12. Содержание
  13. Условие задачи
  14. Выполнение
  15. 4. Изменение программного кода.

Windows forms sql вывод таблицы

Ранее мы рассмотрели, как удобно загружать данные в приложении Windows Forms в элемент DataGridView через DataSet. Теперь определим полнофункциональную форму, через которую мы сможем производить все стандартные CRUD операции в базе данных.

Итак, определим форму, на которой будет элемент DataGridView и три кнопки для добавления, удаления и сохранения изменений. Форма в итоге будет выглядеть примерно следующим образом:

datagridview

Код формы будет выглядеть следующим образом:

Здесь для добавления объекта мы будем обращаться к хранимой процедуре sp_CreateUser, которая была добавлена в базу данных в прошлой теме.

В конструкторе данные загружаются в DataSet, первая таблица которого устанавливается в качестве источника данных для dataGridView1:

Также в конструкторе устанавливается полное выделение строки и запрет на ручное добавление новых строк:

В обработчике кнопки добавления создается новая строка, которая добавляется в таблицу объекта DataSet. И так как мы ранее установили привязку к источнику данных, то автоматически новая строка также будет добавляться и в dataGridView1:

В обработчике кнопки удаления удаляются выделенные строки в dataGridView1. Опять же в силу привязки к источнику данных будет также происходить удаление и из таблицы в DataSet:

Для обновления на не нужна никакая кнопка, так как мы можем нажать на любую ячейку таблицы (кроме заблокированного для изменения столбца Id) и изменить в ней данные. Однако сами по себе добавление новой строки, удаление строк, изменение ячеек ни как автоматически не отразятся на базе данных. И чтобы бд синхронизировалась, пользователю надо будет нажать на кнопку сохранения, обработчик которой выглядит следующим образом:

Источник

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

Вывод данных в DataGridView из БД на C#

В Windows Forms табличные данные удобно выводить с помощью элемента управления DataGridView. В статье покажем, как это сделать на примере таблицы из базы данных и языка программирования C#.

Исходные данные для DataGridView

Имеется таблица в базе данных Microsoft SQL Server с информацией о факультетах университета.

Dannyie dlya vyivoda

Эти данные будем выводить в элемент DataGridView, расположенный на Windows Forms.

Программа с DataGridView

Создадим новый проект Windows Forms на Visual C# в Visual Studio. На форме расположим элемент управления DataGridView – для этого перетащите его с “Панели элементов” на макет окна.

Добавим в DataGridView три столбца под три соответствующих колонки из таблицы БД с помощью кнопки “Правка столбцов”.

Dobavlenie stolbtsov

Для наглядности назовём их так же, как называются поля в таблице базы данных.

Maket interfeysa formyi

Переходим к написанию кода. Вся функциональность по чтению данных из БД и их последующему выводу в DataGridView реализована в методе LoadData().

Источник

Вывод данных из БД в DataGridView

не смог найти тему с ответом на мой вопрос. Есть база данных на локальном сервере MySql. Создаю приложение Windows Forms, соединение устанавливается с БД, но данные не выводятся в DataGridView. Точнее выводятся, но пишет System.Collections.Generic.List`1[System.String] за место данных и то только в 1-ом столбце. Не могу понять что это. Подскажите пожалуйста как мне сделать работоспособную программу

Вот код соединения с БД. Метод public List[] Select() создаёт список для вывода.

Вот что получается в результате, прикрепляю скрин aQRXi

3 ответа 3

Для конструирования строки соединения можно использовать специальный класс-билдер.

При установлении соединения вы оставили только два случая в switch/case, а остальные отбрасываются. В итоге пользователь не получит никакого сообщения, если что-то пойдёт не так. Нужно, например, добавить дополнительную ветку default.

Современная разработка подразумевает использования моделей данных. Свойства класса-модели должны соответствовать колонкам в таблице базы данных. Я не знаю, какие у вас колонки, но, судя по форме, это Имя, Фамилия, Телефон. Поэтому, класс-модель будет такой:

Добавьте необходимые свойства с нужными типами (например, Id типа int и т. п.)

При чтении данных из БД создаём экземпляры нашего класса-модели, заполняем его свойства и добавляем в список.

Также используем привязку данных (binding) вместо ручного добавления.

Рассмотрим подробнее ваш пример. Вот вы «набросали» на форму контролы, и вам нужно начать программировать работу с ними. Что бы тут хотелось бы.

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

Во-вторых, в прил. необходимо выделить слои, минимально 3: слой отображения (визуальный интерфейс), слой модели предметной области с кот. работает ваше прил. и слой хранения (это как раз работа с БД).

Начнем с создания модели. У нас модель достаточно простая. Я добавил еще статич. метод для клонирования экземпляра класса, зачем? Объясню ниже.

Слой хранения начнем с абстракции, с создания интерфейса репозитория.

Теперь вернемся к интерфейсу приложения. Код формы такой

На что хотелось бы обратить внимание.

В методе MainForm_Load() сделано подключение к фейковой БД _repo = new TestRepository(); или точнее классу реализующему IEmployeeRepository c тестовыми данными. Рассмотрим его

Представьте на минутку, вы фрилансер и у вас заказ на подобную программу. Вам нужно быстро разработать прототип и предоставить заказчику, чтоб он мог этот прототип запустить и посмотреть, оценить и проч. Если бы вы использовали сразу подключение к реальной БД у вас бы возникли трудности, не правда ли. А так без проблем, компилируем и отправляем экзешник по почте. vjOh2

Заказчик доволен? 🙂 Пишем работу с реальной БД.

В методе GetConnection() параметры соединения читаются из файла App.config

Да, и не забудьте сначала получить деньги от заказчика 🙂

Источник

Вывести таблицу на форму

но в нём что то не то. Вот ошибка!
Необработанное исключение типа «System.Data.SqlClient.SqlException» в System.Data.dll

Дополнительные сведения: Флаг входа экземпляра пользователя не поддерживается в этой версии SQL Server. Соединение будет закрыто.

Вывести таблицу на форму
Всем привет:)Ребятки я создала базу данных, но не могу вывести ее третий день на форму,т.е. она не.

Как вывести таблицу на форму
Есть две таблицы Form и Spr, они оба заполнены, как сделать так, чтобы таблица Form, выводилась на.

Вывести на форму таблицу и график функции
Здравствуйте. Есть функция: y = exp(x-2)+x^2+3. Необходимо вычислить значение функции в заданном.

Установите на форме dataGridView и укажите число строк и колонн

tickКак вывести на форму таблицу Excel?
как вывести на форму таблицу Excel (в частности нужно столбик А1) нужно с помощью формы потом.

Вывести на форму таблицу и график функции y=e^(x-2)/tg(x-2)
нужно алгортм, программный код, список управляющих элементов Я в этом вообще не шарю, помогите

Создать колонки таблицыЗначений и вывести таблицу в обычную форму
пишу: Процедура ПриОткрытии() Набор = РегистрыСведений.АналогиСтанции.СоздатьНаборЗаписей();.

Как вывести на форму объект, внедренный в таблицу Access
Вопрос1: Если использую элемент ADODC для связи с Access, то какой элемент я должен использовать.

Источник

BestProg

Вывод таблицы базы данных Microsoft Access в компоненте dataGridView

Содержание

Поиск на других ресурсах:

Условие задачи

Имя файла базы данных mydb.mdb”. Файл размещается на диске по следующему пути:

База данных имеет несколько таблиц, одна из которых имеет название “ Order ”.

Задача состоит в том, чтобы с помощью средств языка C# осуществить подключение к базе данных и вывести таблицу с именем « Order » на форму.

Общий вид таблиц и связей между ними изображен на рисунке 1.

02 02 00 002 01

Рис. 1. Связи между таблицами базы данных

Выполнение

1. Создание приложения.

Исходный код формы приложения имеет вид (файл Form1.cs ):

В итоге получаем строку подключения к базе данных Connection String. Эта строка в дальнейшем будет использована в нашем приложении.

Чтобы получить корректную строку подключения к базе данных, нужно выделить базу данных в панели Server Explorer ( mydb.mdb ) и в окне “ Properties ” прочитать (скопировать) значение свойства “ Connection String ” (рис. 2, красное выделение). Следует учесть, что слеш ‘ ’ в строке на C# нужно заменить на ‘ \ ’ (два слеша) согласно синтаксису языка.

02 02 00 002 02

Рис. 2. Чтение свойства Connection String

02 02 00 002 03

Рис. 3. Компонент DataGridView на панели Toolbox

Размещение компонента dataGridView на форме изображено на рисунке 4.

02 02 00 002 04

Рис. 4. Компонент dataGridView на главной форме приложения

4. Изменение программного кода.

Переменная CmdText будет содержать строку SQL-запроса для вывода всех записей таблицы “Order”. Переменная ConnString представляет собой строку подключения к базе данных (см. п. 2).

Общий вид программного кода класса формы следующий:

В последующих шагах мы будем использовать методы из этого пространства имен. Поэтому, вначале файла Form1.cs после строки

нужно добавить строку подключения пространства имен OleDb :

В конструкторе формы после вызова

Добавляем строку создания объекта типа OleDbDataAdapter:

Объект типа OleDbDataAdapter организовывает пересылку наборов данных с вызываемым процессом. Адаптеры данных содержат набор из четырех внутренних объектов команд. Это команды чтения, вставки, изменения и удаления информации. Как видно из программного кода, конструктор объекта получает входящими параметрами строку запроса на языке SQL (переменная CmdText ) и строку подключения к базе данных (переменная ConnString ). Таким образом, после выполнения данного кода, объект адаптера уже связан с нашей базой данных.

После создания адаптера данных ( OleDbDataAdapter ) создаем объект типа DataSet (набор данных):

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

На данный момент данные из таблицы “Order” считаны в объекте ds (типа DataSet), представляющем собой набор данных.

Для их отображения необходимо чтобы свойство DataSource компонента dataGridView1 ссылалось на первую таблицу (в нашем случае одна таблица) набора данных ds. Программный код этой операции имеет следующую реализацию:

После этого данные из таблицы “Order” отобразятся на форме (рис. 5).

5. Весь програмний код.

Общий листинг класса главной формы приложения имеет следующий вид:

Результат выполнения приложения изображен на рис. 5.

02 02 00 002 05

Рис. 5. Результат выполнения приложения

6. Схема взаимодействия.

Общая схема взаимодействия между объектами изображена на рис. 6.

02 02 00 002 06r

Рис. 6. Схема взаимодействия между объектами для доступа к базе данных

Например, если в CmdText задать следующую строку:

то в результате из базы данных будут извлекаться записи, начинающиеся с символа ‘ I ’.

Источник

  • Remove From My Forums
  • Вопрос

  • Здравствуйте вот сколько не старался не могу найти примера для работы с mysql а именно как вывести данные откуда нашел и болие или мение разобрался как обновлять данные а вот не подскажите ли код именно для вывода данных в listbox имееться 3 столбца описаны
    ниже

    CREATE TABLE `day`.`user` (`id` INT NOT NULL AUTO_INCREMENT COMMENT 'id пользователя',
    `name` TEXT NOT NULL COMMENT 'Имя',
    `lastname` TEXT NOT NULL COMMENT 'Фамилия',
    PRIMARY KEY ( `id` ) 
    ) ENGINE = MYISAM ;

    Как мне вывести из этой тоблици id,name,lastname в listbox(1,2,3)

Ответы

  • Примерно так, правда Вам строку подключения надо подправить, у Вас она будет другой.

    using System;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
    
    namespace MySqlDataReader1
    {
      public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
          MySqlCommand command = new MySqlCommand();;
          string connectionString, commandString;
          connectionString = "Data source=localhost;UserId=root;Password=1234;database=MyDatabaseName;";
          MySqlConnection connection = new MySqlConnection(connectionString);
          commandString = "SELECT * FROM Day;";
          command.CommandText = commandString;
          command.Connection = connection;
          MySqlDataReader reader;
          try
          {
            command.Connection.Open();
            reader = command.ExecuteReader();
            while (reader.Read())
            {
              listBox1.Items.Add(reader["id"]);
              listBox1.Items.Add(reader["name"]);
              listBox1.Items.Add(reader["lastname"]);
            }
            reader.Close();
          }
          catch (MySqlException ex)
          {
            Console.WriteLine("Error: rn{0}", ex.ToString());
          }
          finally
          {
            command.Connection.Close();
          }
        }
      }
    }
    

    • Изменено

      19 июля 2012 г. 17:45
      Дополнил

    • Помечено в качестве ответа
      Alex_KG
      20 июля 2012 г. 8:45

Все операции с БД в графическом приложении

Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6

Последнее обновление: 31.10.2015

Ранее мы рассмотрели, как удобно загружать данные в приложении Windows Forms в элемент DataGridView через DataSet. Теперь определим полнофункциональную
форму, через которую мы сможем производить все стандартные CRUD операции в базе данных.

Итак, определим форму, на которой будет элемент DataGridView и три кнопки для добавления, удаления и сохранения изменений. Форма в итоге будет
выглядеть примерно следующим образом:

DataSet и DataGridView

Код формы будет выглядеть следующим образом:

using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace AdoNetWinFormsApp
{
    public partial class Form1 : Form
    {
        DataSet ds;
        SqlDataAdapter adapter;
        SqlCommandBuilder commandBuilder;
        string connectionString = @"Data Source=.SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
        string sql = "SELECT * FROM Users";

        public Form1()
        {
            InitializeComponent();

            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.AllowUserToAddRows = false;

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                adapter = new SqlDataAdapter(sql, connection);

                ds = new DataSet();
                adapter.Fill(ds);
                dataGridView1.DataSource = ds.Tables[0];
				// делаем недоступным столбец id для изменения
                dataGridView1.Columns["Id"].ReadOnly = true;
            }
            
        }
        // кнопка добавления
        private void addButton_Click(object sender, EventArgs e)
        {
            DataRow row = ds.Tables[0].NewRow(); // добавляем новую строку в DataTable
            ds.Tables[0].Rows.Add(row);
        }
        // кнопка удаления
        private void deleteButton_Click(object sender, EventArgs e)
        {
			// удаляем выделенные строки из dataGridView1
            foreach(DataGridViewRow row in dataGridView1.SelectedRows)
            {
                dataGridView1.Rows.Remove(row);
            }   
        }
        // кнопка сохранения
        private void saveButton_Click(object sender, EventArgs e)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                adapter = new SqlDataAdapter(sql, connection);
                commandBuilder = new SqlCommandBuilder(adapter);
                adapter.InsertCommand = new SqlCommand("sp_CreateUser", connection);
                adapter.InsertCommand.CommandType = CommandType.StoredProcedure;
                adapter.InsertCommand.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 50, "Name"));
                adapter.InsertCommand.Parameters.Add(new SqlParameter("@age", SqlDbType.Int, 0, "Age"));

                SqlParameter parameter = adapter.InsertCommand.Parameters.Add("@Id", SqlDbType.Int, 0, "Id");
                parameter.Direction = ParameterDirection.Output;

                adapter.Update(ds);
            }
        }
    }
}

Здесь для добавления объекта мы будем обращаться к хранимой процедуре sp_CreateUser, которая была добавлена в базу данных в прошлой теме.

В конструкторе данные загружаются в DataSet, первая таблица которого устанавливается в качестве источника данных для dataGridView1:

dataGridView1.DataSource = ds.Tables[0];

Также в конструкторе устанавливается полное выделение строки и запрет на ручное добавление новых строк:

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.AllowUserToAddRows = false;

В обработчике кнопки добавления создается новая строка, которая добавляется в таблицу объекта DataSet. И так как мы ранее установили
привязку к источнику данных, то автоматически новая строка также будет добавляться и в dataGridView1:

private void addButton_Click(object sender, EventArgs e)
{
    DataRow row = ds.Tables[0].NewRow(); // добавляем новую строку в DataTable
    ds.Tables[0].Rows.Add(row);
}

В обработчике кнопки удаления удаляются выделенные строки в dataGridView1. Опять же в силу привязки к источнику данных будет также происходить удаление
и из таблицы в DataSet:

private void deleteButton_Click(object sender, EventArgs e)
{
    foreach(DataGridViewRow row in dataGridView1.SelectedRows)
    {
        dataGridView1.Rows.Remove(row);
    }   
}

Для обновления на не нужна никакая кнопка, так как мы можем нажать на любую ячейку таблицы (кроме заблокированного для изменения столбца Id) и изменить в ней данные.
Однако сами по себе добавление новой строки, удаление строк, изменение ячеек ни как автоматически не отразятся на базе данных. И
чтобы бд синхронизировалась, пользователю надо будет нажать на кнопку сохранения, обработчик которой выглядит следующим образом:

private void saveButton_Click(object sender, EventArgs e)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        adapter = new SqlDataAdapter(sql, connection);
        commandBuilder = new SqlCommandBuilder(adapter);
        adapter.InsertCommand = new SqlCommand("sp_CreateUser", connection);
        adapter.InsertCommand.CommandType = CommandType.StoredProcedure;
        adapter.InsertCommand.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 50, "Name"));
        adapter.InsertCommand.Parameters.Add(new SqlParameter("@age", SqlDbType.Int, 0, "Age"));

        SqlParameter parameter = adapter.InsertCommand.Parameters.Add("@Id", SqlDbType.Int, 0, "Id");
        parameter.Direction = ParameterDirection.Output;

        adapter.Update(ds);
    }
}

Как в прошлой теме здесь устанавливается у адаптера команда на добавление InsertCommand и затем вызывается метод Update().
В итоге мы можем добавить несколько строк, удалить, изменить, и потом один раз мы нажмем на кнопку, и все изменения будут применены к базе данных.

Понравилась статья? Поделить с друзьями:
  • Как выглядит электронная лицензия windows 10
  • Как выглядит чистый файл hosts windows 10
  • Как вывести стикеры на рабочий стол в windows 10
  • Как выглядит цифровая лицензия windows 10
  • Как вывести ссылку на сайт на рабочий стол windows 10