Diskuze: Databáze

C# .NET .NET (C# a Visual Basic) Databáze American English version English version

Avatar
jzvire01
Člen
Avatar
jzvire01:

Ahoj, nevíte někdo v čem mám chybu?

string polozka = "";
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C: \Users\Jirka.JIRKA - HP\Documents\Visual Studio 2015\Projects\WindowsFormsApplication7\WindowsFormsApplication7\Database1.mdf;Integrated Security=True");
            SqlCommand com = new SqlCommand("SELECT SurName FROM Table WHERE Name='Marie'", con);
            SqlDataReader reader = com.ExecuteReader();
            while (reader.Read())
            {
                polozka = reader.GetString(0);
            }

            MessageBox.Show(polozka);
 
Odpovědět 7. dubna 19:04
Avatar
Odpovídá na jzvire01
Ondřej Štorc:

A co ti to dělá? (nejspíše to na něčem padá, tak kdyby jsi mohl sem připsat tu zprávu co ti to píše)

Nahoru Odpovědět 7. dubna 19:28
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
jzvire01
Člen
Avatar
jzvire01:

Teď nejsem na PC, ale vybere to

SqlDataReader reader = com.ExecuteReader();
 
Nahoru Odpovědět 7. dubna 19:31
Avatar
Odpovídá na jzvire01
Ondřej Štorc:

No to mi toho moc neřeklo :) Ale každopádně by jsi měl otevřít připojení k databázi (con.Open())
P.S.: Požívej tlačítko odpovědět

Nahoru Odpovědět  +1 7. dubna 19:36
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
jzvire01
Člen
Avatar
Odpovídá na Ondřej Štorc
jzvire01:

Dik zitra se na to podívám.

 
Nahoru Odpovědět 7. dubna 19:40
Avatar
Odpovídá na jzvire01
Michal Štěpánek:

Kdyby sis přečetl tu chybu, kterou ti to píše, zjistil bys, že nemáš otevřené spojení

con.Open();
SqlDataReader reader = com.ExecuteReader();

a taky si nejsem jistý tím

polozka = reader.GetString(0);

já bych použil

polozka = reader[0].ToString();

a ten MessageBox ti podle mě zobrazí pouze první nalezenou položku...

Nahoru Odpovědět 7. dubna 20:54
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jzvire01
Člen
Avatar
Odpovídá na Michal Štěpánek
jzvire01:

Díky ale ted´ mi to vyhazuje:

An unhandled exception of type 'System.Data.SqlCli­ent.SqlExcepti­on' occurred in System.Data.dll

Additional information: An attempt to attach an auto-named database for file C: \Users\Jirka.JIRKA - HP\Documents\Visual Studio 2015\Projects\Win­dowsFormsAppli­cation7\Window­sFormsApplica­tion7\Database1­.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

 
Nahoru Odpovědět 8. dubna 7:04
Avatar
VitekST
Člen
Avatar
Odpovídá na jzvire01
VitekST:

"A database with the same name exists, or specified file cannot be opened, or it is located on UNC share."

S trochou znalosti angličtiny by si to mohl vyřešit sám, ale okay.
Dej si pozor na cestu k souboru.

Doporučoval bych ti soubor s DB strčit do adresáře s programem, získávat adresář s programem za běhu (viz. Application.Star­tupPath a Application.E­xecutablePath) a takto získanou cestu kombinovat s názvem souboru.

Můžeš si ten DB soubor přesunout i někam na kořen disku, aspoň nemusíš vypisovat dlouhou cestu. :)

 
Nahoru Odpovědět 8. dubna 7:15
Avatar
jzvire01
Člen
Avatar
jzvire01:

Začal jsem znova a teď mi to píše:

An unhandled exception of type 'System.Data.SqlCli­ent.SqlExcepti­on' occurred in System.Data.dll
Additional information: Incorrect syntax near the keyword 'Table'

Tady je můj kód:

string polozka = "";
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Jirka.JIRKA-HP\Documents\Visual Studio 2015\Projects\WindowsFormsApplication8\WindowsFormsApplication8\bin\Debug\Database1.mdf;Integrated Security=True;Persist Security Info=False;Connect Timeout=30");
            SqlCommand com = new SqlCommand("SELECT name FROM Table WHERE surname='Svoboda'", con);
            con.Open();
            SqlDataReader reader = com.ExecuteReader();
            while(reader.Read())
            {
                polozka = reader.GetString(0);
                label1.Text = polozka;
            }
            reader.Close();
            con.Close();
 
Nahoru Odpovědět  +1 9. dubna 9:44
Avatar
jzvire01
Člen
Avatar
jzvire01:

Poraďte prosím

 
Nahoru Odpovědět 9. dubna 16:05
Avatar
hj.masek
Člen
Avatar
hj.masek:

myslim ze Table je spatne, pojmenuj to treba users =>

SELECT name FROM users WHERE surname='Svoboda'
 
Nahoru Odpovědět 9. dubna 17:10
Avatar
jzvire01
Člen
Avatar
jzvire01:

Už jsem na to přišel musim dát tu tabulku do [Table]

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 9. dubna 17:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.