Forum » Programiranje » [C#] Query in code
[C#] Query in code
iggy1 ::
Imam recimo en textBox in bi rad ko kliknem OK, da se to kar je bilo vpisano v textBox shrani v podatkovno bazo.Recimo podatkovna baza je imenik povezavo že imam do baze sam kako se query napiše v C#?
darkolord ::
Približno tako (če imaš že narejeno povezavo)
SqlCommand sc = new SqlCommand("INSERT INTO tabela VALUES (@vrednost)", povezava); sc.Parameters.AddWithValue("@vrednost", TextBox1.Text); povezava.Open(); sc.ExecuteNonQuery(); povezava.Close();
iggy1 ::
string connectionString = GetConnectionString();
using (SqlConnection connection = new SqlConnection(connectionString))
SqlCommand sc = new SqlCommand("INSERT INTO imenik VALUES (@vrednost)", connection);
sc.Parameters.AddWithValue("@vrednost", textBox1.Text);
connection.Open();
sc.ExecuteNonQuery();
connection.Close();
Pri tej kodi mi vrže pri vsrtici SqlCommand error " embedded statement cannot be a declaration or labeled statement". A mi kdo zna povedati kaj bi lahko bilo narobe?
Lp,
Igor
using (SqlConnection connection = new SqlConnection(connectionString))
SqlCommand sc = new SqlCommand("INSERT INTO imenik VALUES (@vrednost)", connection);
sc.Parameters.AddWithValue("@vrednost", textBox1.Text);
connection.Open();
sc.ExecuteNonQuery();
connection.Close();
Pri tej kodi mi vrže pri vsrtici SqlCommand error " embedded statement cannot be a declaration or labeled statement". A mi kdo zna povedati kaj bi lahko bilo narobe?
Lp,
Igor
iggy1 ::
Ok to vrstico using sem dal ven pol mi a butne ene 5 errorjev:
The name GetConnectionString does not exist in the current context
The type or namespace name SqlCommand could not be found(are you missing a using directive or an a assemly reference?)
string does not contain a definiton for Open
string does not contain a definiton for Close
The name GetConnectionString does not exist in the current context
The type or namespace name SqlCommand could not be found(are you missing a using directive or an a assemly reference?)
string does not contain a definiton for Open
string does not contain a definiton for Close
darkolord ::
na vrhu modula dodaj
pa ne daš tiste vrstice cele ven ampak samo using, tako da pride:
Kje imaš metodo GetConnectionString() definirano?
using System.Data.SqlClient;
pa ne daš tiste vrstice cele ven ampak samo using, tako da pride:
SqlConnection connection = new SqlConnection(connectionString);
Kje imaš metodo GetConnectionString() definirano?
darkolord ::
Iz kje si to sploh pobral?
Načeloma lahko connection string nastaviš kar direkt za tvojo bazo..
Načeloma lahko connection string nastaviš kar direkt za tvojo bazo..
iggy1 ::
static private string GetConnectionString()
{
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;";
}
A to postavim pod to prejšno kodo?
{
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;";
}
A to postavim pod to prejšno kodo?
iggy1 ::
Ja kako bi recimo v mojem primeru rešil da bi vsebino textBoxa zapisal v tabelo imenik, ki vsebuje stolpce Ime Priimek Dejavnost v drugi tabeli pa Številka GSM1 GSM2 E-mail?
iggy1 ::
SqlCommand sc = new SqlCommand("INSERT INTO tabela VALUES (@vrednost)", povezava);
sc.Parameters.AddWithValue("@vrednost", TextBox1.Text);
povezava.Open();
sc.ExecuteNonQuery();
povezava.Close();
kaj bi moral vstaviti tukaj namesto besede povezava. A mogoče connectionString?
sc.Parameters.AddWithValue("@vrednost", TextBox1.Text);
povezava.Open();
sc.ExecuteNonQuery();
povezava.Close();
kaj bi moral vstaviti tukaj namesto besede povezava. A mogoče connectionString?
iggy1 ::
Ok uspel sem vzzpostaviti povezavo dodal en label da mi pove če je bila vstrica shranjena in mi vse lepo pokaže, da je bila. Samo ko pa grem gledat v podatkovno bazo je pa ta še zmeraj prazna. Ima kdo idejo zakaj?
Tole je pa koda:
SqlConnection connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\imenik.mdf;Integrated Security=True;User Instance=True");
SqlCommand sc = new SqlCommand("INSERT Stiki (Priimek, Ime, Dejavnost) VALUES (@priimek, @ime, @dejavnost)", connection);
sc.Parameters.AddWithValue("@priimek", textBox1.Text);
sc.Parameters.AddWithValue("@ime", textBox2.Text);
sc.Parameters.AddWithValue("@dejavnost", comboBox1.Text);
connection.Open();
Int32 rowsAffected = sc.ExecuteNonQuery();
affected.Text = rowsAffected.ToString();
connection.Close();
Lp,
Igor
Tole je pa koda:
SqlConnection connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\imenik.mdf;Integrated Security=True;User Instance=True");
SqlCommand sc = new SqlCommand("INSERT Stiki (Priimek, Ime, Dejavnost) VALUES (@priimek, @ime, @dejavnost)", connection);
sc.Parameters.AddWithValue("@priimek", textBox1.Text);
sc.Parameters.AddWithValue("@ime", textBox2.Text);
sc.Parameters.AddWithValue("@dejavnost", comboBox1.Text);
connection.Open();
Int32 rowsAffected = sc.ExecuteNonQuery();
affected.Text = rowsAffected.ToString();
connection.Close();
Lp,
Igor
darkolord ::
Mimogrede, sql stavek je INSERT INTO...
Drugače pa, poglej če nimaš pri fajlu od baze označeno, da ti fajl skopira v output mapo vsakič ko program skompajlaš
Drugače pa, poglej če nimaš pri fajlu od baze označeno, da ti fajl skopira v output mapo vsakič ko program skompajlaš
iggy1 ::
Evo spremenjena koda :
SqlConnection connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\imenik.mdf;Integrated Security=True;User Instance=True");
SqlCommand sc1 = new SqlCommand("INSERT INTO Stiki VALUES (@priimek, @ime, @dejavnost)", connection);
sc1.Parameters.AddWithValue("@priimek", textBox1.Text);
sc1.Parameters.AddWithValue("@ime", textBox2.Text);
sc1.Parameters.AddWithValue("@dejavnost", comboBox1.Text);
SqlCommand sc2 = new SqlCommand("INSERT INTO Stevilka VALUES (@stevilka, @gsm1, @gsm2, @e-mail)", connection);
sc2.Parameters.AddWithValue("@stevilka", textBox3.Text);
sc2.Parameters.AddWithValue("@gsm1", textBox4.Text);
sc2.Parameters.AddWithValue("@gsm2", textBox5.Text);
sc2.Parameters.AddWithValue("@e-mail", textBox6.Text);
connection.Open();
Int32 rowsAffected = sc1.ExecuteNonQuery();
affected.Text = rowsAffected.ToString();
connection.Close();
Lej če dam tm never copy mi pa da error. A kej veš zakaj? Kaj naj naredim da vidim v podatkovni bazi recorde?
SqlConnection connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\imenik.mdf;Integrated Security=True;User Instance=True");
SqlCommand sc1 = new SqlCommand("INSERT INTO Stiki VALUES (@priimek, @ime, @dejavnost)", connection);
sc1.Parameters.AddWithValue("@priimek", textBox1.Text);
sc1.Parameters.AddWithValue("@ime", textBox2.Text);
sc1.Parameters.AddWithValue("@dejavnost", comboBox1.Text);
SqlCommand sc2 = new SqlCommand("INSERT INTO Stevilka VALUES (@stevilka, @gsm1, @gsm2, @e-mail)", connection);
sc2.Parameters.AddWithValue("@stevilka", textBox3.Text);
sc2.Parameters.AddWithValue("@gsm1", textBox4.Text);
sc2.Parameters.AddWithValue("@gsm2", textBox5.Text);
sc2.Parameters.AddWithValue("@e-mail", textBox6.Text);
connection.Open();
Int32 rowsAffected = sc1.ExecuteNonQuery();
affected.Text = rowsAffected.ToString();
connection.Close();
Lej če dam tm never copy mi pa da error. A kej veš zakaj? Kaj naj naredim da vidim v podatkovni bazi recorde?
iggy1 ::
Če grem pa sam dajat record noter mi da pa ID 1 tako da sploh ne verjamem da shrani v podatkovno bazo. How strange is that?
Nevem zakaj mi označi kakor, da je izvedel stavek, če ga ni.
Nevem zakaj mi označi kakor, da je izvedel stavek, če ga ni.
darkolord ::
"Copy to Output Directory" nastavi na "Do not copy" (in prvič na roko skopiraj bazo tja)
iggy1 ::
Bazo imam tukaj:
C:\DOCUMENTS AND SETTINGS\IGOR\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\IMENIK\IMENIK\IMENIK.MDF
C:\DOCUMENTS AND SETTINGS\IGOR\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\IMENIK\IMENIK\IMENIK.MDF
darkolord ::
Kaj naj pa kopiram če nič ni noter?
No potem si si že sam odgovoril... imenik.mdf skopiraj tja kjer je exe fajl
No potem si si že sam odgovoril... imenik.mdf skopiraj tja kjer je exe fajl
iggy1 ::
Naredil pa še kr nič. K grem gledat z sql server manager ni v imeniku niti enega recorda. Nevem več kaj naj naredim.
iggy1 ::
Darkolord a misliš da je problem v kodi, ker jaz nevem več kaj bi lahko bilo. Probal sem že mali milijon možnosti. Gledal sem tudi ta forum:
[C#] Spremembe podatkov se ne shranijo v podatkovno bazo
pa ni nič pomagalo.
[C#] Spremembe podatkov se ne shranijo v podatkovno bazo
pa ni nič pomagalo.
darkolord ::
Če izključim to, da v zgornji kodi poženeš samo sc1 in ne tudi sc2, izgleda vse v redu. Dej v connectionstring celotno pot do baze pa boš pol vidu, če res ne daja notri...
iggy1 ::
A to misliš v connectionstring v app.config a samo v moji kodi?
A ti lahko pošljem kodo pa ti mal sprobavaš kaj bi lahko bilo?
A ti lahko pošljem kodo pa ti mal sprobavaš kaj bi lahko bilo?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL problemOddelek: Programiranje | 1684 (1302) | win64 |
» | C# INSERT statment ne vpise podatkovOddelek: Programiranje | 1202 (1076) | darkolord |
» | Napaka pri povezavi z bazo - c#Oddelek: Programiranje | 1003 (867) | Mitja Bonča |
» | [Visual C#] TableAdapterOddelek: Programiranje | 1127 (1003) | detroit |
» | [C#] Dostop do objekta iz različnih formOddelek: Programiranje | 2160 (1873) | Kekec |