Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


CodeBehind

Postades av 2002-04-26 08:56:27 - Jonas Gauffin, i forum asp.net generellt, Tråden har 12 Kommentarer och lästs av 1237 personer

Morsning

Jag försöker skapa en codebehind sida. Men jag får följande fel:

System.NullReferenceException: Object reference not set to an instance of an object.
Line 39: Dim dt As DataTable = ds.Tables(0)
Line 40:
Line 41: mList.DataSource = dt <---- this line
Line 42: mList.DataBind()
Line 43:


aspx:
<%@ Page Language="vb" CodeBehind="Test.vb" Inherits="Test" Src="Test.vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<form action="WebForm1.aspx" method="post" runat="server" ID="Form1">

<asp:DataGrid ID="mList">
<Columns>
<asp:BoundColumn DataField="name"></asp:BoundColumn>
<asp:BoundColumn DataField="caseid"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>

vb:
Imports Microsoft.Data.Odbc
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Data

Public Class WebForm1
Inherits System.Web.UI.Page

Public mList 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

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
Dim cmd As OdbcCommand
Dim sql As String = "SELECT name,caseid FROM case_info"
Dim conStr As String = "driver={MySQL};server=sql3;uid=root;database=support3;OPTION=17923"

Dim da As OdbcDataAdapter = New OdbcDataAdapter(sql, conStr)
Dim ds As New DataSet()

da.Fill(ds, "case_info")
'dim bldr as

Dim dt As DataTable = ds.Tables(0)

mList.DataSource = dt
mList.DataBind()


End Sub

End Class


Svara

Sv: CodeBehind

Postades av 2002-04-26 09:25:47 - Mikael Sand

Synnerligen enkelt svar faktiskt. Det bevisar att du ställt frågan på ett rätt sätt anser jag.

Du har inte gjort någon instans av objektet dt (DataTable). Tala om att du vill att datatablen ska tillhöra ditt dataset.

dt = New DataTable
dataset.tables.add(dt)

//Mikael.NET


Svara

Sv: CodeBehind

Postades av 2002-04-26 09:35:26 - Jonas Gauffin


Dim dt As DataTable = ds.Tables(0)

den raden skapar väl objectet DT och tilldelar den resultatet av ds.Tables(0)


Svara

Sv: CodeBehind

Postades av 2002-04-26 10:02:52 - Tommy Winberg

Det är mList objektet som inte är skapat.

/Tommy


Svara

Sv: CodeBehind

Postades av 2002-04-26 10:25:32 - Jonas Gauffin

jo jag antog att det var problemet.

Men mList är ju skapad i aspx sidan. Och eftersom det är en CodeBehind sida borde den existera i .vb sidan också, right?


Svara

Sv: CodeBehind

Postades av 2002-04-26 10:46:43 - Tommy Winberg

Nej, aspx sidan ärver ju från codebehind klassen, detta sker före något händer i aspx-filen.

Om du skapar kontrollen med designern så kommer den att skapa en instans i InitializeComponent (via Page_Init händelsen).

Antingen så ändrar du till:

Protected WithEvents mList As New DataGrid

eller så får du skapa instansen före du använder den i Page_Load.

/Tommy


Svara

Sv: CodeBehind

Postades av 2002-04-26 11:11:48 - Jonas Gauffin

alltså.
1. Test.vb klassen ärver System.Web.UI.Page
2. I test.vb skapar man en ny datagrid som heter mList
3. WebForm1.aspx ärver test klassen och då refererar alltså mList i aspx sidan till mList som man har skapat i Test klassen. eller?

Vill du vara vänlig och göra ett litet exempel, jag får det inte att fungera..


Svara

Sv: CodeBehind

Postades av 2002-04-26 11:27:53 - Tommy Winberg

Det enklaste är att skapa tabellen och dessutom lägger på ett dataset med hjälp av designläget för aspx-filen.

mList är ett (dvs samma) objekt i aspx & codebehind filerna. Designern deklarerar objekten med WithEvents för att man skall kunna ta hand om händelser i codebehind-klassen.

/Tommy

Public Class GridDemo
Inherits System.Web.UI.Page
Protected WithEvents myDataSet As System.Data.DataSet
Protected WithEvents myDataGrid 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()
Me.myDataSet = New System.Data.DataSet()
CType(Me.myDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
'
'myDataSet
'
Me.myDataSet.DataSetName = "NewDataSet"
Me.myDataSet.Locale = New System.Globalization.CultureInfo("sv-SE")
CType(Me.myDataSet, System.ComponentModel.ISupportInitialize).EndInit()

End Sub

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

End Class


Svara

Sv: CodeBehind

Postades av 2002-04-26 12:42:54 - Jonas Gauffin

jag vill inte ha det enkelt.
Jag vill göra sakerna själv och veta hur det hela fungerar bakom kulisserna.

Som jag har fatta det så ärver min klass System.Web.UI.Page och aspx sidan ärver min klass. Eller har jag fel?

Vilken ordning laddas de olika klasserna?
1. UI.Page
2. Klassen
3. AspX sidan

om det är den ordningen så förstår jag att man måste använda new, för då är ju inte datagriden initierad i aspx sidan. Om det är tvärtom så borde det fungera utan att deklarera mlist som new i klassen. Eller tänker jag fel?

I alla exempel som jag har sett på nätet har man aldrig deklarerat webform kontrollen som new i codebehind klassen. Dock har jag aldrig fått det att fungera.


Svara

Sv: CodeBehind

Postades av 2002-04-26 13:29:10 - Tommy Winberg

Det finns detaljerade beskrivningar på msdn.microsoft.com och i VS.NET dokumentationen.

Den enda klass som instansieras är aspx-klassen. Codebehind och ui.page klasserna är en del av aspx-klassen.

Sätt brytpunkter och starta i debug så kan du stega genom alla händelser och se vilka objekt som finns.

/Tommy


Svara

Sv: CodeBehind

Postades av 2002-04-26 13:55:07 - Jonas Gauffin

har jag givetvis gjort.
mList finns inte med på vbsidan som man inte deklarerar den som new.
men deklarerar man den som new så syns inget data i griden.

och jag har sökt igenom msdn..


Svara

Sv: CodeBehind

Postades av 2002-04-26 15:23:02 - Tommy Winberg

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconWebFormsCodeModel.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconWebFormsPageProcessingStages.asp


Svara

Sv: CodeBehind

Postades av 2002-04-29 08:46:53 - Jonas Gauffin

runat="server"

saknades på datagriden, därför som det inte fungerade....


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
6 064
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies