rozszerzona wyszukiwarka

0

Cześć
Jak wykonać rozszerzoną wyszukiwarkę?. Umiem wyszukać ze swojej bazy danych pojedynczo co potrzebuje. Ale jak pokazać wszystkich wyszukanych kowalskich z ich danymi? . Wpisuje Kowalski i wypluwa mi wszystkich kowalskich wraz z ich informacjami?.

Czego najlepiej użyć?

0

może jakiś kod

1
przonak007 napisał(a):

Cześć
Jak wykonać rozszerzoną wyszukiwarkę?. Umiem wyszukać ze swojej bazy danych pojedynczo co potrzebuje. Ale jak pokazać wszystkich wyszukanych kowalskich z ich danymi? . Wpisuje Kowalski i wypluwa mi wszystkich kowalskich wraz z ich informacjami?.

Czego najlepiej użyć?

Tak debilnie sformułowanego pytania to tu dawno nie było.
Poducz się podstaw SQL, a sam sobie odpowiesz na to pytanie.

0

Jestem początkujący i chyba mam prawo się zapytać. Obrażać jak 'allocer', każdy potrafi. Nie mówię żeby ktoś to zamnie zrobił. Chce się czegoś nauczyć, i proszę o jakąś radę, wskazówkę na początek.
Myślałem o użyciu 'DataGridView' ?. Jest możliwość zrobienia tego w textbox'ie?

0

Obrażać? Człowieku, zadałeś durne pytanie z księżyca, bez żadnego opisu ani kodu. Skąd mamy wiedzieć, o co Ci dokładnie chodzi?
DataGridView odpowiada za wyświetlanie danych z bazy i tak - jest dobrym wyborem do tego.

Ale jak pokazać wszystkich wyszukanych kowalskich z ich danymi? . Wpisuje Kowalski i wypluwa mi wszystkich kowalskich wraz z ich informacjami?.

Jak mi to ktoś wytłumaczy to zrozumiem.

0

Podaj jakiś kod.. Co to w ogóle za baza? Nikt nie będzie się w zgadywankę bawił :)

0

Noto wnioskuje że potrafisz pobrać dane z bazy danych. To dorób textboxa gdzie bedziesz wpisywał szukaną frazę i dołuż jakiegoś "where" czy to do zapytania SQL czy cokolwiek używasz i pobieraj porządane wartości z bazy lub przeszukuj cały zbiór już ściągnięty który trzymasz w jakieś liście czy w DataTable nie wiem i odświeżaj Grida w celu wyświetlania porządanych wartości. A o co Ci naprawde chodzi nie wiadomo a przykładów w google od takich pierduł jest masa.

0

Jest to baza w SQL CE (.sdf) To jest to co zrobiłem. Chciałem po wpisaniu w textBox nazwiska ucznia, pojawiły się w datagridview wszyscy uczniowie z tym nazwiskiem.

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;
using System.Data.SqlServerCe;

namespace WindowsFormsApplication1
{
    
}
0

najprościej takie zapytanie:

SELECT * FROM uczniowie WHERE nazwisko = 'kowalski'

i wyświetl odpowiedź w dgv

0

tak, ale ja chciałbym wybrać jakie nazwisko ma mi się pojawić, a nie od razu deklarować stałą

0

przykładowo z textBoxa:

"SELECT * FROM uczniowie WHERE nazwisko = '" + this.textBox1.Text + "'"
0

poprawiłem trochę kod

 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;
using System.Data.SqlServerCe;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        DataView view = new DataView();

        public Form1()
        {
            InitializeComponent();
            FillData();
        }

        void FillData()
        {
            SqlCeConnection conn = new SqlCeConnection("Data Source=C:\\Users\\Macin\\Desktop\\Dziennik_Szkolny\\bazadanych.sdf");
            {
                conn.Open();
                SqlCeDataAdapter a = new SqlCeDataAdapter("SELECT * FROM uczniowie", conn);
                {
                    DataTable t = new DataTable();
                    a.Fill(t);
                    dataGridView1.DataSource = view = t.DefaultView;
                    
                }
            }
            conn.Close();
        }
        private void Form1_Load(object sender, EventArgs e)
       {
       
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            view.RowFilter = "SELECT * FROM uczniowie WHERE nazwisko = '" + this.textBox1.Text + "'";
            if (textBox1.Text == "") view.RowFilter = string.Empty;
        }
    }
}

            

Pojawia się taki błąd : Syntax error: Missing operand after 'uczniowie' operator.

I podkreśla mi :

 view.RowFilter = "SELECT * FROM uczniowie WHERE nazwisko = '" + this.textBox1.Text + "'";
0

Bo to jest zapytanie do bazy. Tak tego użyj:

SqlCeDataAdapter a = new SqlCeDataAdapter("SELECT * FROM uczniowie WHERE nazwisko = '" + this.textBox1.Text + "'", conn);
0

poprawiłem, ale błąd pojawił mi się w a.Fill(t); "An unhandled exception of type 'System.Data.SqlServerCe.SqlCeException' occurred in System.Data.SqlServerCe.dll"

Przecież dodałem referencje SqlServerCe?

0

a masz taką kolumnę jak nazwisko? Podałem tylko dla przykładu.

0

poprawiłem to na swój program

0

Kompiluje się , ale teraz datagridview jest pusty. Nawet jak wpisze nazwisko w textBox to nic się nie zmienia. Nadal tabela jest pusta

0

To pokaż teraz kod

0
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlServerCe;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        void FillData()
        {
            DataView view = new DataView();
            
            SqlCeConnection conn = new SqlCeConnection("Data Source=C:\\Users\\kaczka\\Desktop\\bazadanych.sdf");
            {
                conn.Open();
                SqlCeDataAdapter a = new SqlCeDataAdapter("SELECT * FROM uczniowie WHERE Nazwiska = '" + this.textBox1.Text + "'", conn);
                {
                    DataTable t = new DataTable();
                    a.Fill(t);
                    dataGridView1.DataSource = view = t.DefaultView;

                }
            }
            conn.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

      private void textBox1_TextChanged(object sender, EventArgs e)
        {
           
        }
    }
}

Pierwszy link pokazuje program zaraz po skompilowaniu : http://zapodaj.net/6809f07625b39.png.html

Link drugi pokazuje jak wpiszę w textBox przykładowe nazwisko : http://zapodaj.net/4b08a1423eddd.png.html

Chciałbym po wpisaniu w textBox nazwiska ucznia, pojawili się wszyscy uczniowie z tym samym nazwiskiem w datagridview

0

przy uruchamianiu programu textBox jest pusty. Zrób obok textBoxa jakis button 'szukaj' i po kliknięciu dopiero pobierz dane z bazy i wypełnij dgv

0

dzięki już działa :)

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