Help with Datagrid (Surprising No Data!!)

N

naija naija

Hello guys i made a Datagrid with Editing,Update and Cancel using
VS.NET. to my surprise nothing is on the screen after compilation ..

By code below:-
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Public Class datagrid_edit
Inherits System.Web.UI.Page

Protected WithEvents MenuGrid As System.Web.UI.WebControls.DataGrid

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()

End Sub

'NOTE: The following placeholder declaration is required by the Web
Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
End Sub
Sub BindDataGrid()

Dim DBConnection As SqlConnection
Dim DBCommand As SqlCommand
Dim DBReader As SqlDataReader
Dim SQLString As String

DBConnection = New
SqlConnection("server=(local);database=Northwind;integrated
security=true;")
DBConnection.Open()
SQLString = "SELECT * FROM treetable ORDER BY FileCategoryID"
DBCommand = New SqlCommand(SQLString, DBConnection)
DBReader = DBCommand.ExecuteReader()
MenuGrid.DataSource = DBReader
MenuGrid.DataBind()
DBReader.Close()
DBConnection.Close()

End Sub

Sub EditRecord(ByVal Src As Object, ByVal Args As
DataGridCommandEventArgs)
MenuGrid.EditItemIndex = Args.Item.ItemIndex
BindDataGrid()
End Sub

Sub UpdateRecord(ByVal Src As Object, ByVal Args As
DataGridCommandEventArgs)
Dim DBConnection As SqlConnection
Dim DBCommand As SqlCommand
Dim DBReader As SqlDataReader
Dim SQLString As String

Dim FileCategoryID = CType(Args.Item.Cells(0).Controls(0),
TextBox).Text
Dim ParentID = CType(Args.Item.Cells(1).Controls(0),
TextBox).Text
Dim FileCategory = CType(Args.Item.Cells(2).Controls(0),
TextBox).Text
Dim NavigateUrl = CType(Args.Item.Cells(3).Controls(0),
TextBox).Text
Dim Target = CType(Args.Item.Cells(4).Controls(0), TextBox).Text

'Dim ItemPrice = CType(Args.Item.Cells(4).Controls(0),
TextBox).Text
'Dim ItemQuantity = CType(Args.Item.Cells(5).Controls(0),
TextBox).Text

SQLString = "UPDATE treetable SET " & _
"ParentID = '" & ParentID & "', " & _
"FileCategory = '" & Replace(FileCategory, "'", "''") & "', "
& _
"NacigateUrl = '" & Replace(NavigateUrl, "'", "''") & "', " &
_
"Target = " & Target & ", " & _
"WHERE FileCategoryID ='" & FileCategoryID & "'"
'"ItemQuantity = " & ItemQuantity & " " & _
'"WHERE ItemNumber = '" & ItemNumber & "'"

DBConnection = New
SqlConnection("server=(local);database=Northwind;integrated
security=true;")
DBConnection.Open()
DBCommand = New SqlCommand(SQLString, DBConnection)
DBCommand.ExecuteNonQuery()
DBConnection.Close()

MenuGrid.EditItemIndex = -1
BindDataGrid()

End Sub


Sub CancelRecord(ByVal Src As Object, ByVal Args As
DataGridCommandEventArgs)
MenuGrid.EditItemIndex = -1
BindDataGrid()
End Sub

End Class

Html Code Below:-
-------------------

<asp:DataGrid id="MenuGrid" runat="server"
OnEditCommand="EditRecord"
OnUpdateCommand="UpdateRecord"
OnCancelCommand="CancelRecord"
AutoGenerateColumns="False">

<Columns>

<asp:BoundColumn
HeaderText="ParentID"
DataField="ParentID"/>
<asp:BoundColumn
HeaderText="FileCategory"
DataField="FileCategory"/>
<asp:BoundColumn
HeaderText="NavigateUrl"
DataField="NavigateUrl"/>
<asp:BoundColumn
HeaderText="target"
DataField="target"/>

<asp:EditCommandColumn
HeaderText="Editing"
EditText="Edit"
UpdateText="Update"
CancelText="Cancel"/>

</Columns>

</asp:DataGrid>
 
H

Hermit Dave

Well the reason you cant see any data is that you are not requesting for
any. I have added a couple of lines to Page_load

Also, using consider using disconnected objects like dataset for what you
are doing.
ie fetch a DataSet. use DataAdapter.Fill() for that purpose. that way you
can close the connection after the fill command is complete.
And you should also try using
Try Catch blocks..

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
' for first time population of datagrid

if not Page.IsPostback then
BindDataGrid()
end if
End Sub

Sub BindDataGrid()

Dim DBConnection As SqlConnection
Dim DBCommand As SqlCommand
' the rest of the code
end sub
--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
 
N

naijacoder naijacoder

Hi Hermit,
Thanks for the reply.
I got that doing already guess i was tired when i wrote that code!
i will definitely amke use of dataset later!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,905
Latest member
Kristy_Poole

Latest Threads

Top