Dim strProducten As String = "SELECT * FROM tblBestellingen_details INNER JOIN tblProducten ON (tblBestellingen_details.prod_id = tblProducten.prod_id) WHERE tblBestellingen_details.bestel_id = '" & Openbestelling & "'"
Dim strProducten As String ="SELECT * FROM tblBestellingen_details INNER JOIN tblProducten ON (tblBestellingen_details.prod_id = tblProducten.prod_id) WHERE tblBestellingen_details.bestel_id = '"& Openbestelling &"'"
Maar het probeem zit hem nu:
Dit geeft bijvoorbeeld
Producta aantala prijsa prijstot
Productb aantalb prijsb prijstot
Nu kan ik alles in een label plaatsen. Maar ik zou willen dat aantala & aantalb in een textbox komen en als ik deze verander ik deze ook allemaal in 1x het aantal kan wijzigen.
Hoe doe ik het best, gridview, labels/textboxen?, code's? Ik heb eigenlijk geen enkel idee.
Sub BindGrid()
Dim cnnConnectie As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("conGIP").ToString())
cnnConnectie.Open()
Dim DS As dataset
Dim sql_commando As OleDBDataAdapter
sql_commando = New OleDBDataAdapter("select * from producten", MyConnection)
DS = New DataSet()
sql_commando.Fill(DS, "producten")
prodver.DataSource = DS.Tables("producten").DefaultView
prodver.DataBind()
End Sub
Sub BindGrid()
Dim cnnConnectie AsNew SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("conGIP").ToString())
cnnConnectie.Open()
Dim DS As dataset
Dim sql_commando As OleDBDataAdapter
sql_commando =New OleDBDataAdapter("select * from producten", MyConnection)
rechts onderaan bij je properties gewoon op de tekstlink "dataset" klikken en hij doet alles vanzelf...? Net zoals je connectie. Voeg hem in je server explorer toe, sleep hem naar je formulier en je connectie is er... Je moet ze enkel nog openen.
Imports System.Data
Imports System.Data.Common
Imports System.Data.SqlClient
Partial Class product_verwijderen
Inherits System.Web.UI.Page
Protected Sub cmdJa_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdJa.Click
End Sub
Protected Sub cmdNee_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdNee.Click
Response.Redirect("productenverwijderen.aspx")
End Sub
Sub prodver_ItemDataBound(ByVal Sender As Object, ByVal E As DataGridItemEventArgs)
If (E.Item.ItemType = ListItemType.EditItem) Then
Dim i As Integer
For i = 0 To E.Item.Controls.Count - 1
If (E.Item.Controls(i).Controls(0).GetType().ToString() = "System.Web.UI.WebControls.TextBox") Then
Dim tb As TextBox
tb = E.Item.Controls(i).Controls(0)
tb.Text = Server.HtmlDecode(tb.Text)
End If
Next
End If
End Sub
Sub prodver_Delete(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
Dim cnnConnectie As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("conGIP").ToString())
Dim Deletecmd As String = "DELETE FROM tblProducten WHERE prod_id = @prod_id"
Dim sql_commando As New SqlCommand(Deletecmd, cnnConnectie)
sql_commando.Parameters.Add(New Parameter("@prod_id", TypeCode.Int32, 11))
sql_commando.Parameters("@prod_id").Value = prodver.DataKeys(CInt(E.Item.ItemIndex))
cnnConnectie.Open()
Try
sql_commando.ExecuteNonQuery()
lblTest.Text = "Verwijderd"
Catch Exc As Exception
lblTest.Text = "Er is een fout opgetreden bij het verwijderen van het record"
lblTest.Style("color") = "red"
End Try
cnnConnectie.Close()
BindGrid()
End Sub
Sub BindGrid()
Dim cnnConnectie As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("conGIP").ToString())
cnnConnectie.Open()
Dim DS As DataSet
Dim strCommand As String = "SELECT * FROM tblProducten"
Dim sql_commando As New SqlDataAdapter(strCommand, cnnConnectie)
DS = New DataSet
sql_commando.Fill(DS, "tblProducten")
prodver.DataSource = DS.Tables("tblProducten").DefaultView
prodver.DataBind()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
BindGrid()
End Sub
End Class
Ik heb het gevonden, het was bij DataKeyField="prod_id" dat ik id had ingesteld...
Maar nu heb ik het volgende: ex as exception geeft dit:
Citaat:
Er is een fout opgetreden bij het verwijderen van het recordSystem.Data.SqlClient.SqlException: Operand type clash: ntext is incompatible with int bij System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) bij System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) bij System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) bij System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) bij System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) bij System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) bij System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) bij System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) bij System.Data.SqlClient.SqlCommand.ExecuteNonQuery() bij product_verwijderen.prodver_Delete(Object Sender, DataGridCommandEventArgs E) in G:FinduilasWebshopproduct_verwijderen.aspx.vb:regel 34
Als je de fout deftig leest zie je al dat er staat "ntext komt niet overeen met int..." dit wil zeggen dat de datatypes van de DataGrid niet overeenkomen met die van de DB.