ASP.NET Newbie Q

G

Guest

Hi

I have created a website that I want to feed content in from a database to populate the site

Question 1: If I have a several different tables I want to connect to that are all used for different things with in the page, should I create several OleDbDataAdapters or just use the same one for all my DataSets

Question 2: If I want to show simply a header row and a content row in a table should I use a DataGrid, DataList or what? In ASP I just did a response.write (Content) or what ever. What is the best way to do this in ASP.NET using VS

Question 3: I have a menu that I want to create dynamically from a database. I have created the Data Set for the menu but everytime I try and create the DataBindings I get an error saying ArgumentNullException: Value cannot be Null??? WHY

I would really be grateful if someone could help me with these questions..

...:: CODE ::.
#Region " Web Form Designer Generated Code

'This call is required by the Web Form Designer
<System.diagnostics.debuggerstepthrough()> Private Sub InitializeComponent(
Me.OleDbDataAdapter1 = New System.Data.OleDb.OleDbDataAdapte
Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnectio
Me.OleDbSelectCommand1 = New System.Data.OleDb.OleDbComman
Me.DsMenu11 = New CPNiNet.dsMenu
CType(Me.DsMenu11, System.ComponentModel.ISupportInitialize).BeginInit(

'OleDbDataAdapter

Me.OleDbDataAdapter1.SelectCommand = Me.OleDbSelectCommand
Me.OleDbDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "tblMenu", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("menuName", "menuName"), New System.Data.Common.DataColumnMapping("menuURL", "menuURL"), New System.Data.Common.DataColumnMapping("menuLevel", "menuLevel"), New System.Data.Common.DataColumnMapping("parentID", "parentID"), New System.Data.Common.DataColumnMapping("accessID", "accessID"), New System.Data.Common.DataColumnMapping("contentID", "contentID"), New System.Data.Common.DataColumnMapping("description", "description"), New System.Data.Common.DataColumnMapping("header", "header"), New System.Data.Common.DataColumnMapping("content", "content"), New System.Data.Common.DataColumnMapping("Expr1", "Expr1"), New System.Data.Common.DataColumnMapping("menuID", "menuID"), New System.Data.Common.DataColumnMapping("groupID", "groupID"), New System.Data.Common.DataColumnMapping("Expr2", "Expr2")})}

'OleDbConnection

Me.OleDbConnection1.ConnectionString = "Integrated Security=SSPI;Packet Size=4096;Data Source=""SERVER""" &
";Tag with column collation when possible=False;Initial Catalog=DBCMS;Use Proced" &
"ure for Prepare=1;Auto Translate=True;Persist Security Info=False;Provider=""SQLO" &
"LEDB.1"";Workstation ID=PC;Use Encryption for Data=False

'OleDbSelectCommand

Me.OleDbSelectCommand1.CommandText = "SELECT tblMenu.menuName, tblMenu.menuURL, tblMenu.menuLevel, tblMenu.parentID, tb" &
"lMenu.accessID, tblContent.contentID, tblContent.description, tblContent.header," &
" tblContent.content, tblContent.accessID AS Expr1, tblContent.menuID, tblGroups." &
"groupID, tblGroups.accessID AS Expr2 FROM tblMenu INNER JOIN tblContent ON tblMe" &
"nu.menuID = tblContent.menuID CROSS JOIN tblGroups
Me.OleDbSelectCommand1.Connection = Me.OleDbConnection

'DsMenu1

Me.DsMenu11.DataSetName = "dsMenu1
Me.DsMenu11.Locale = New System.Globalization.CultureInfo("en-US"
CType(Me.DsMenu11, System.ComponentModel.ISupportInitialize).EndInit(

End Su
Protected WithEvents Menu1 As skmMenu.Men
Protected WithEvents OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapte
Protected WithEvents OleDbConnection1 As System.Data.OleDb.OleDbConnectio
Protected WithEvents OleDbSelectCommand1 As System.Data.OleDb.OleDbComman
Protected WithEvents DsMenu11 As CPNiNet.dsMenu1

'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
If (Page.IsPostBack = False) Then
Dim submenu1 As New skmMenu.MenuItem("<img src=""images/menublip.gif"" align=""absmiddle"">Home", "")

submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 1", "page1.html"))
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 2", "page2.html"))

Dim submenu3 As New skmMenu.MenuItem("Sub Item 3 ->", "")
submenu3.SubItems.Add(New skmMenu.MenuItem("Sub Item 3 - 1", "page1.html"))
submenu3.SubItems.Add(New skmMenu.MenuItem("Sub Item 3 - 2", "page2.html"))

submenu1.SubItems.Add(submenu3)
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 4", "page4.html"))
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 5", "page5.html"))
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 6", "page6.html"))
Menu1.Items.Add(submenu1)

Dim submenu2 As New skmMenu.MenuItem("<img src=""images/menublip.gif"" align=""absmiddle"">Office", "")

submenu2.SubItems.Add(New skmMenu.MenuItem("Sub Item 1", "page3.html", "tooltip1"))
submenu2.SubItems.Add(New skmMenu.MenuItem("Sub Item 2", "page4.html", "tooltip2"))
Menu1.Items.Add(submenu2)

Menu1.CssClass = "menustyle"
Menu1.DefaultCssClass = "menuitem"
Menu1.DefaultMouseOverCssClass = "mouseover"

Menu1.HighlightTopMenu = True
Menu1.Opacity = 75
Menu1.zIndex = 100
End If
End Sub
 
A

Alec MacLean

Hi Tim,

1. Depending on the performance you want to achieve you might want to
consider datareaders instead. There are various ways to achieve this - you
can add all the code into the Page_Load and just switch the commandtext, or
you can split it out into modular procedures. I'm sure more experienced
coders may have further suggestions...

e.g. using modular procedures:

private sCon as new sqlconnection
private sCmd as new sqlcommand
--------------------------------------------------------
+ #Region " Web Form Designer Generated Code "
--------------------------------------------------------
sub Page_load (...)
'do what your page load logic dictates...
If not page.ispostback then
'Go get the data for the page
me.GetTab1()
me.GetTab2()
'etc as required
end if
end sub
--------------------------------------------------------
private sub GetTab1()
'open connection to db and get data
Dim sdr As SqlDataReader
Dim booCloseConn As Boolean = False

If Me.sCon .State = ConnectionState.Closed Then
Me.sCon .ConnectionString = ConfigurationSettings.AppSettings("DBConn")
Me.sCmd .Connection = Me.sCon
booCloseConn = True
End If

Me.sCmd.Parameters.Clear()
Me.sCmd.CommandType = CommandType.StoredProcedure
Me.sCmd.CommandText = "myStoredProcedure1"
'Add any required parameters:
Me.sCmd.Parameters.Add(New SqlParameter("@paramname1",
sqldbtype.int)).value = ctype(myvalue, integer)
'etc... as required

Try
Me.lblErr.Visible = False

If Me.sCon .State = ConnectionState.Closed Then
Me.sCon .Open()
End If

'Run the command and pull data into reader
sdr = Me.sCmd .ExecuteReader

'Bind your data to the display object
me.dgTable1.Datasource = sdr
me.dgTable1.DataBind

'drop the sdr object from memory
sdr.close()
sdr = nothing

Catch ex As Exception
'Display applicable error message if occured
Me.lblErr.Visible = True
Me.lblErr.Text = "Error: " & ex.Message.ToString()

Finally
'Close and tidy up, even if error occured.

If booCloseConn Then
If Me.sCon .State = ConnectionState.Open Then
Me.sCon .Close()
End If
End If

Me.sCmd .Parameters.Clear()
End Try

end sub
--------------------------------------------------------

Private sub GetTab2()
'The same as GetTab1, but runs different command text (SPROC).
'...etc...
end sub
--------------------------------------------------------

2. Datalist can be faster, but has less capabilities than datagrid -
depends on the functions you want to add to the rendered table. E.g.,
having a linkbutton against each row to open an edit form or another target
page would be easier using a datagrid as the designer supports this easily.


3. Indicates you've used a method/function that requires an argument that
you haven't supplied. Check the examples supplied on the skm menu site.

Hope that helps.

Al

Tim::.. said:
Hi,

I have created a website that I want to feed content in from a database to populate the site.

Question 1: If I have a several different tables I want to connect to that
are all used for different things with in the page, should I create several
OleDbDataAdapters or just use the same one for all my DataSets?
Question 2: If I want to show simply a header row and a content row in a
table should I use a DataGrid, DataList or what? In ASP I just did a
response.write (Content) or what ever. What is the best way to do this in
ASP.NET using VS?
Question 3: I have a menu that I want to create dynamically from a
database. I have created the Data Set for the menu but everytime I try and
create the DataBindings I get an error saying ArgumentNullException: Value
cannot be Null??? WHY?
I would really be grateful if someone could help me with these questions...

..:: CODE ::..
#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.diagnostics.debuggerstepthrough()> Private Sub InitializeComponent()
Me.OleDbDataAdapter1 = New System.Data.OleDb.OleDbDataAdapter
Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnection
Me.OleDbSelectCommand1 = New System.Data.OleDb.OleDbCommand
Me.DsMenu11 = New CPNiNet.dsMenu1
CType(Me.DsMenu11, System.ComponentModel.ISupportInitialize).BeginInit()
'
'OleDbDataAdapter1
'
Me.OleDbDataAdapter1.SelectCommand = Me.OleDbSelectCommand1
Me.OleDbDataAdapter1.TableMappings.AddRange(New
System.Data.Common.DataTableMapping() {New
System.Data.Common.DataTableMapping("Table", "tblMenu", New
System.Data.Common.DataColumnMapping() {New
System.Data.Common.DataColumnMapping("menuName", "menuName"), New
System.Data.Common.DataColumnMapping("menuURL", "menuURL"), New
System.Data.Common.DataColumnMapping("menuLevel", "menuLevel"), New
System.Data.Common.DataColumnMapping("parentID", "parentID"), New
System.Data.Common.DataColumnMapping("accessID", "accessID"), New
System.Data.Common.DataColumnMapping("contentID", "contentID"), New
System.Data.Common.DataColumnMapping("description", "description"), New
System.Data.Common.DataColumnMapping("header", "header"), New
System.Data.Common.DataColumnMapping("content", "content"), New
System.Data.Common.DataColumnMapping("Expr1", "Expr1"), New
System.Data.Common.DataColumnMapping("menuID", "menuID"), New
System.Data.Common.DataColumnMapping("groupID", "groupID"), New
System.Data.Common.DataColumnMapping("Expr2", "Expr2")})})
'
'OleDbConnection1
'
Me.OleDbConnection1.ConnectionString = "Integrated
Security=SSPI;Packet Size=4096;Data Source=""SERVER""" & _
";Tag with column collation when possible=False;Initial Catalog=DBCMS;Use Proced" & _
"ure for Prepare=1;Auto Translate=True;Persist Security
Info=False;Provider=""SQLO" & _
"LEDB.1"";Workstation ID=PC;Use Encryption for Data=False"
'
'OleDbSelectCommand1
'
Me.OleDbSelectCommand1.CommandText = "SELECT tblMenu.menuName,
tblMenu.menuURL, tblMenu.menuLevel, tblMenu.parentID, tb" & _
"lMenu.accessID, tblContent.contentID, tblContent.description, tblContent.header," & _
" tblContent.content, tblContent.accessID AS Expr1,
tblContent.menuID, tblGroups." & _
"groupID, tblGroups.accessID AS Expr2 FROM tblMenu INNER JOIN tblContent ON tblMe" & _
"nu.menuID = tblContent.menuID CROSS JOIN tblGroups"
Me.OleDbSelectCommand1.Connection = Me.OleDbConnection1
'
'DsMenu11
'
Me.DsMenu11.DataSetName = "dsMenu1"
Me.DsMenu11.Locale = New System.Globalization.CultureInfo("en-US")
CType(Me.DsMenu11, System.ComponentModel.ISupportInitialize).EndInit()

End Sub
Protected WithEvents Menu1 As skmMenu.Menu
Protected WithEvents OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapter
Protected WithEvents OleDbConnection1 As System.Data.OleDb.OleDbConnection
Protected WithEvents OleDbSelectCommand1 As System.Data.OleDb.OleDbCommand
Protected WithEvents DsMenu11 As CPNiNet.dsMenu1

'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
If (Page.IsPostBack = False) Then
Dim submenu1 As New skmMenu.MenuItem("<img
src=""images/menublip.gif"" align=""absmiddle"">Home", "")
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 1", "page1.html"))
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 2", "page2.html"))

Dim submenu3 As New skmMenu.MenuItem("Sub Item 3 ->", "")
submenu3.SubItems.Add(New skmMenu.MenuItem("Sub Item 3 - 1", "page1.html"))
submenu3.SubItems.Add(New skmMenu.MenuItem("Sub Item 3 - 2", "page2.html"))

submenu1.SubItems.Add(submenu3)
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 4", "page4.html"))
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 5", "page5.html"))
submenu1.SubItems.Add(New skmMenu.MenuItem("Sub Item 6", "page6.html"))
Menu1.Items.Add(submenu1)

Dim submenu2 As New skmMenu.MenuItem("<img
src=""images/menublip.gif"" align=""absmiddle"">Office", "")
 

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

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top