05. oktober 2006 - 11:10
Der er
31 kommentarer
Kan ikke slette fra db
Hej Jeg er ved at lave en metode som skal kunne slettet fra en database. Jeg får fejl i min sql sætning "near *".... Min kode er string strSQL = "DELETE * FROM users WHERE id=2"; SqlConnection myConnection = new SqlConnection(connectionString); SqlCommand myCommand = new SqlCommand(strSQL, myConnection); myCommand.Connection.Open(); myCommand.ExecuteNonQuery(); myConnection.Close(); Kan i se hvorfor?
Annonceindlæg fra Infor
05. oktober 2006 - 11:18
#1
Din sql streng skal være "DELETE FROM user WHERE id = 2"
05. oktober 2006 - 11:30
#2
ja det er klart :D men posten med id 2 bliver ikke slettet..
05. oktober 2006 - 11:37
#3
hvis du retter din sql skulle du ikke gerne få fejlen du hentyder til?
05. oktober 2006 - 11:39
#4
det rettede også fejlen, men posten i databasen slettes ikke
05. oktober 2006 - 11:40
#5
og der kommer ikke nogen fejlmeddelelse
05. oktober 2006 - 11:59
#6
Det skal virke! Jeg har lige testet din kode og den virker fint her.
05. oktober 2006 - 12:01
#7
bruger jeg følgende sql sætning meldes der også fejl.. "INSERT INTO users (username, password) VALUES(nytnavn, nytpass)"
05. oktober 2006 - 12:05
#8
kan det have noget at gøre med at jeg udskriver alt indholder at tabellen til et dataset?
05. oktober 2006 - 12:08
#9
sletter jeg manuelt posten i db melder den heller ingen fejl...
05. oktober 2006 - 12:21
#10
jeg har ændret min kode lidt, den ser således ud nu: string strSQL = "DELETE FROM users WHERE id=3"; //string strSQL = "INSERT INTO users (username, password) VALUES(nytnavn, nytpass)"; SqlConnection myConnection = new SqlConnection(connectionString); SqlCommand myCommand = new SqlCommand(strSQL, myConnection); myConnection.Open(); myCommand.ExecuteNonQuery(); //myCommand.Connection.Open(); myConnection.Close(); s//
05. oktober 2006 - 12:21
#11
hov myCommand.ExecuteNonQuery(); //myCommand.Connection.Open(); viser min ændring, men den betyder ikke noget, jeg mener bare det bør være sådan.
05. oktober 2006 - 12:43
#12
Har kontrolleret i selve databasen om den er væk?
05. oktober 2006 - 12:45
#13
ja, og det er det ikke... desværre bruger ms sql 2005 express hvad siger du til min ændring?
05. oktober 2006 - 12:57
#14
Som jeg ser det er det ikke din kode der fejler noget (den første kode du har posted) for den har jeg kørt mod min database uden problemer. Og hvis heller ingen fejl du får lyder det lidt mærkeligt. Du er sikker på at du har "snablen" nede i den rigtige DB?
05. oktober 2006 - 13:08
#15
ja, for den kan jeg læse fra men når jeg udlæser fra db læser jeg udtrækket over i et dataset. kan det have nogen indflydelse (jeg ser ikke nogen...)?
05. oktober 2006 - 13:18
#16
Nej det har ikke noget at sige at du henter dine data over i et dataset, det skulle kun være hvis ikke du får opdateret dit dataset efter du har slettet posten i DB.
05. oktober 2006 - 13:50
#17
jeg har indtil nu brugt en autogenereret database... elelr hvad det nu kaldet. jeg har nu oprettet en database i sql express (der troede jeg også den anden lå, men det gjorde den ikke). nu er mit problem at det kniber med at connecte. kan denne connectionstring bruges? <add name="ConString" connectionString="Server=Server=MINPC\SQLEXPRESS;Database=DB-Test;Trusted_Connection=True;" />
05. oktober 2006 - 14:20
#18
Du kan connecte til databasen fra VS under Database Explorer
05. oktober 2006 - 14:40
#19
jeg venter lidt med den server så så jeg reformulerer lige, jeg bruge den mdf database som er oprettet af VS. Er det et problem? Når du har testet er det så på en mdf db som er oprettet af VS eller en db i sql express?
05. oktober 2006 - 14:56
#20
Jeg har testet det på en hosted Ms-sql 2000 hvor jeg har oprettet tabellerne direkte på datadatabasen. Men det burde nu være lige meget. Nej du burde snildt kunne bruge den MS-SQL 2005 ekspress som installeres sammen med VS
05. oktober 2006 - 18:46
#21
ok nu virker det det skulle være string strSQL = "DELETE * FROM users WHERE id=2"; SqlConnection myConnection = new SqlConnection(connectionString); //de her to skulle btttes rundt :D myCommand.Connection.Open(); SqlCommand myCommand = new SqlCommand(strSQL, myConnection); myCommand.ExecuteNonQuery(); myConnection.Close(); læg bare et svar, og tak for hjælpen :D
05. oktober 2006 - 19:53
#22
Det var godt du fik det til at virke :-)
06. oktober 2006 - 08:35
#23
lige et sidste spørgsmål. Nu sletter den i databasen..... tror jeg. den sletter en post med ovenstående (det kan jeg se inden mit program afsluttes), men når programmet afsluttes, så er ændringen i databasen ikke at finde.... Ved du hvad det kan være?
06. oktober 2006 - 09:00
#24
Hej igen :-) Hvad sker der i din database inden du lukker din applikation (hvis du kigger direkte i databasen)?
06. oktober 2006 - 10:34
#25
faktisk ingen ting... Er det´noget med at det hele ligger i ram'en og skal skrives til db eller noget?
06. oktober 2006 - 11:13
#26
Dit DataSet ligger i hukommelsen, men når du udføre myCommand.ExecuteNonQuery() sker det med det samme i databsen, med mindre du får en exception.
06. oktober 2006 - 11:51
#27
jeg får ingen exception har lavet følgende for at se om der kommer en try { //string strSQL = "DELETE FROM users WHERE id=3"; string strSQL = "INSERT INTO users (username, password) VALUES('henrik', 'hansen')"; SqlConnection myConnection = new SqlConnection(connectionString); SqlCommand myCommand = new SqlCommand(strSQL, myConnection); myConnection.Open(); myCommand.ExecuteNonQuery(); myConnection.Close(); } catch (SqlException e) { MessageBox.Show(e.ToString()); }
06. oktober 2006 - 12:04
#28
Dvs. at der intet sker nogen steder når du fyre det ovenstående af?
06. oktober 2006 - 12:23
#29
altså, det er korrekt, at der ikke sker noget i databasen (nå man kigger direkte ned i den.). Men hvis jeg inden programmet slutter udlæser fra databasen og kommer dette over i en variabel af typen dataset, så kan jeg godt se den nye post...
06. oktober 2006 - 14:03
#30
Det lyder lidt mystisk... kan du ikke prøve at poste den kode hvor med du fylder dit dataset,
10. oktober 2006 - 20:25
#31
Hej igen :D Hermed min metode som fylder mig recordset private DataSet FillDataSet(SqlCommand dbCommand, string QueryName) { SqlConnection connection = new SqlConnection(connectionString); dbCommand.Connection = connection; SqlDataAdapter adapter = new SqlDataAdapter(dbCommand); DataSet sqlDataSet = new DataSet(); try { connection.Open(); adapter.Fill(sqlDataSet, QueryName); } catch (Exception e) { MessageBox.Show("Fejl i SQL forespørgsel!! \n\n\n" + e); } finally { connection.Close(); } return sqlDataSet; }
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.