Pocetnik sam u vb programiranju. Radim vezbe iz knjige "Od pocetka... Visual Basic .NET". Zaglavio sam kod 16 Proramiranje SQL servera u ADO.NET. Ne mogu da zavrsim vezbu iz knjige. Hteo bi da napravim sopstvenu baze podataka. Greska se javlja kod Add dugmeta za dodavanje novog zapisa u tabelu. Greske koje se javljaju u tom delu su :
Line 1 : Incorrect syntax near ‘Parameter1’
Line 1 : Incorrect syntax near ‘?’
Line 1 : Incorrect syntax near ‘?’
Da li zna neko gde su greske?
Da dodam:
'Parametar za klonu title_ID...
...
Se pojavljuje 2 puta u kodu.
I ...Item(0)...
II...Item(4)...
Da li to tako mora?
Kao malo objasnjenje povucene su 2 tabele "titles" i "authors" koje su vezane za 3. "titleauthor" iz SQL pub datoteke.
Mozete da odgovorite i jednostavnije jer meni treba dodavanje zapisa u samo jednu tabelu (u mojoj bazi). Ali ako neko zna kako da resim ovaj primer nebi bilo lose da mi objasni radi kasnjeg prosirivanja.
Hvala u napred I evo koda:
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
'Ponistite Ime1, Ime2 i Ime3 polja...
txtBooktitle.Text = ""
txtPrice.Text = ""
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Dim intPosition As Integer, intMaxID As Integer
Dim strID As String
Dim objCommand As SqlCommand = New SqlCommand()
'Sacuvajte trenutni polozaj zapisa...
intPosition = objCurrencyManager.Position
'Inicijalizujte novi primerak objekta DataSet...
objDataSet = New DataSet()
'Otvorite vezu sa bazom podataka...
objConnection.Open()
'Otvorite vezu sa bazom podataka...
objDataAdapter = New SqlDataAdapter( _
"SELECT MAX(title_id) AS MaxID " & _
"FROM titles WHERE title_id LIKE 'DM%'", objConnection)
'Popunite podacima onjekat DataSet...
objDataAdapter.Fill(objDataSet, "titles")
'Ako je kolona MaxID jednaka nuli...
If objDataSet.Tables("titles").Rows(0).Item("MaxID") Is _
System.DBNull.Value Then
'Podesite podrazumevanu vrednost na 1000...
intMaxID = 1000
Else
'U suprotnom , podesite promenljivu strID na vrednost MAXID...
strID = CStr(objDataSet.Tables("titles").Rows(0).Item("MaxID"))
'Uzmite vrednost celog broja iz niza...
intMaxID = CInt(strID.Remove(0, 2))
'Povecajte vrednost...
intMaxID += 1
End If
'Na kraju, podesite novi ID...
strID = "DM" & intMaxID
'Podesite osobine objekata SQLCommand...
objCommand.Connection = objConnection
objCommand.CommandText = "INSERT INTO titles" & _
"(title_id, title, type, price, pubdate) " & _
"VALUES(?,?, 'Demo',?, '" & "'); " & _
"INSERT INTO titleauthor (au_id, title_id) VALUES (?,?)"
objCommand.CommandType = CommandType.Text
'Dodajte parametre za cuvare mesta u iskazu SQL, u
'osobini CommnadText...
'Parametar za klonu title_ID...
objCommand.Parameters.Add(New SqlParameter())
objCommand.Parameters.Item(0).Direction = ParameterDirection.Input
objCommand.Parameters.Item(0).DbType = DbType.String
objCommand.Parameters.Item(0).Size = 6
objCommand.Parameters.Item(0).Value = strID
'Parametar za klonu sa naslovom...
objCommand.Parameters.Add(New SqlParameter())
objCommand.Parameters.Item(1).Direction = ParameterDirection.Input
objCommand.Parameters.Item(1).DbType = DbType.String
objCommand.Parameters.Item(1).Size = 80
objCommand.Parameters.Item(1).Value = txtBooktitle.Text
'Parametar za klonu sa cenom...
objCommand.Parameters.Add(New SqlParameter())
objCommand.Parameters.Item(2).Direction = ParameterDirection.Input
objCommand.Parameters.Item(2).DbType = DbType.Currency
objCommand.Parameters.Item(2).Size = 8
objCommand.Parameters.Item(2).Value = txtPrice.Text
'Parametar za klonu au_ID...
objCommand.Parameters.Add(New SqlParameter())
objCommand.Parameters.Item(3).Direction = ParameterDirection.Input
objCommand.Parameters.Item(3).DbType = DbType.String
objCommand.Parameters.Item(3).Size = 11
objCommand.Parameters.Item(3).Value = txtAuthorID.Text
'Parametar za klonu title_ID...
objCommand.Parameters.Add(New SqlParameter())
objCommand.Parameters.Item(4).Direction = ParameterDirection.Input
objCommand.Parameters.Item(4).DbType = DbType.String
objCommand.Parameters.Item(4).Size = 6
objCommand.Parameters.Item(4).Value = strID
'Izvrsite objekat SQLCommand da bi ste umetnuli nove podatke...
Try
objCommand.ExecuteNonQuery()
Catch err As SqlException
MessageBox.Show(err.Message)
End Try
'Zatvorite vezu...
objConnection.Close()
'Popunite skup podataka i povezite polja...
FillDataSetAndView()
BindFields()
'podesite polozaj zapisa na onaj koji je sacuvan...
objCurrencyManager.Position = intPosition
'Pokazite trenutni polozaj zapisa...
ShowPosition()
'Prikazite poruku u kojoj se vidi da je zapis dodat....
StatusBar1.Text = "Record Added"
'Ponistite...
objDataSet = Nothing
objDataAdapter = Nothing
objCommand = Nothing
End Sub