ADO.NET i wyświetlanie danych

0

Witam!

Chciałbym się zapytać czy da się wypisać dane do np. listBoxa lub DataGridView bez używania DataSetów, czyli używając modelu połączeniowego.
Jak w konsoli wyświetlam np. Tak:

SqlDataReader dataReader = sqlCmd.ExecuteReader();
while (dataReader.Read())
{
    Console.Write("{0, 32}", dataReader["ProductName"]);
    Console.Write("{0, 16}", dataReader["UnitPrice"]);
    Console.Write("{0, 25}", dataReader["QuantityPerUnit"]);
    Console.WriteLine();
}
dataReader.Close();

To czy da się podobnie wyświetlić w Windows Forms?

0

Skoro wczytujesz w pętli i wyświetlasz w konsoli, to równie dobrze możesz dodawać nowe wiersze do DGV czy ListBoxa.

Pytanie tylko po co się tak męczyć, ale to inna sprawa.

0

A mógłbyś mi podać jakiś przykład bo nie za bardzo wiem jak to zrobić.

0

jako zrodlo danych do listboxa czy grida mozesz podac dataReadera
jesli chcesz wyswietlac wszystkie kolumny w gridzie, to nic wiecej nie musisz robic, inaczej z reki stworz kolumny i okresl ktore pole ma byc w nich wyswietlane

0

No próbuje i nie działa:/

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

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

        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection sqlConn = new SqlConnection();
            sqlConn.ConnectionString = "server=(local);" +
                                   "database=Northwind;" +
                                   "user id=tests;" +
                                   "password=kosa;";

            // otwórz połączenie:
            sqlConn.Open();

            SqlCommand sqlCmd = new SqlCommand();
            sqlCmd.CommandText = "select nazwa from produkty";
            sqlCmd.Connection = sqlConn;

            SqlDataReader dataReader = sqlCmd.ExecuteReader();
            while (dataReader.Read())
            {
                dataGridView1.DataSource = dataReader["nazwa"];
            }
            dataReader.Close();

            // zamknij połaczenie:
            sqlConn.Close();
        }
    }
}


0

bo podpinasz nie to co trzeba
dataReader.Read() powoduje przejscie do kolejnego rekordu i udostepnia pola rekordu bo implementuje IDataRecord

po wykonaniu zapytania podpinasz reader jako zrodlo danych i tyle
var reader = cmd.ExecuteReader();
dataGrid.DataSource = reader;
reader.Close();

1 użytkowników online, w tym zalogowanych: 0, gości: 1