webForumDet fria alternativet

Type 'DataSet' is not defined

9 svar · 345 visningar · startad av ampy

ampyMedlem sedan feb. 20011 498 inlägg
#1

Har en kod som ser ut så här:

    Private Sub Page_Load(sender As Object, e As EventArgs)
        Dim strConnect As String = "DSN=ampy_net"
    	Dim strSQL As String = "SELECT username FROM members"

		' Skapa de båda objekten.
		Dim objConn As New OdbcConnection(strConnect)
		Dim objCmd As New OdbcDataAdapter(strSQL, objConn)

		' Fyll ett DataSet.
		dim ds as DataSet = new DataSet()
		objCmd.Fill(ds, "members")

		' Välj en DataView och bind till serverkontrollen.
		MyDataList.DataSource = ds.Tables("members").DefaultView
		MyDataList.DataBind()

    End Sub

Felmeddelandet jag får är följande:

Compiler Error Message: BC30002: Type 'DataSet' is not defined.

Source Error:

 

Line 15: 
Line 16: 		' Fyll ett DataSet.
[B]Line 17: 		dim ds as DataSet = new DataSet()[/B]
Line 18: 		objCmd.Fill(ds, "members")
Line 19:

Varför får jag det?

juventus1Medlem sedan dec. 2000399 inlägg
#2

Jag tror att du glömt importera System.Data. Skriva detta överst på din sida:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
ampyMedlem sedan feb. 20011 498 inlägg
#3

Hade skrivit:

<%@ import Namespace="System" %>

istället för

<%@ import Namespace="System.Data" %>

:r

Men nu får jag:

Compiler Error Message: BC30451: Name 'MyDataList' is not declared.

Source Error:

 

Line 19: 
Line 20: 		' Välj en DataView och bind till serverkontrollen.
[B]Line 21: 		MyDataList.DataSource = ds.Tables("members").DefaultView[/B]
Line 22: 		MyDataList.DataBind()
Line 23:
NETworkMedlem sedan juni 20011 732 inlägg
#4

Du måste deklarera din datalist, tror du skriver nåt sånt här i vb:

Protected MyDataList As System.Web.UI.WebControls.DataList
ampyMedlem sedan feb. 20011 498 inlägg
#5

På din rad får jag:

Compiler Error Message: BC30247: 'Protected' is not valid on a local variable declaration.

PatrikBMedlem sedan mars 20002 836 inlägg
#6

skapar du din datalist on the fly eller är den en kontroll som redan ligger i aspx sidan?

cya,
PatrikB

ampyMedlem sedan feb. 20011 498 inlägg
#7

Koden för hela sidan ser ut så här:

<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="Microsoft.Data.Odbc" %>

<script runat="server">

    Private Sub Page_Load(sender As Object, e As EventArgs)
        Dim strConnect As String = "DSN=ampy_net"
    	Dim strSQL As String = "SELECT username FROM members"

		' Skapa de båda objekten.
		Dim objConn As New OdbcConnection(strConnect)
		Dim objCmd As New OdbcDataAdapter(strSQL, objConn)

		' Fyll ett DataSet.
		dim ds as DataSet = new DataSet()
		objCmd.Fill(ds, "members")

		' Välj en DataView och bind till serverkontrollen.
		Protected MyDataList As System.Web.UI.WebControls.DataList
		MyDataList.DataSource = ds.Tables("members").DefaultView
		MyDataList.DataBind()

    End Sub

</script>

<html>
<head>
<title>ASP+: Hello, World</title>
</head>
<body>

    <form runat="server">
        <!-- Insert content here -->
    </form>

</body>
</html>
NETworkMedlem sedan juni 20011 732 inlägg
#8

Du ska deklarera den utanför pageloaden... funkar det ändå inte, byt ut protected mot public. Kanske måste vara public när man inte använder code behind?

NETworkMedlem sedan juni 20011 732 inlägg
#9

...och sedan verkar det inte som du har någon datalist, då blir det svårt att programmera mot den. :)

<form runat="server">
   <asp:datalist id="MyDataList" runat="server"></asp:datalist>
</form>
ampyMedlem sedan feb. 20011 498 inlägg
#10

Nu fungerar det :)

<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="Microsoft.Data.Odbc" %>

<script runat="server">

    Private Sub Page_Load(sender As Object, e As EventArgs)
        Dim strConnect As String = "DSN=ampy_net"
    	Dim strSQL As String = "SELECT username FROM members"

		' Skapa de båda objekten.
		Dim objConn As New OdbcConnection(strConnect)
		Dim objCmd As New OdbcDataAdapter(strSQL, objConn)

		' Fyll ett DataSet.
		dim ds as DataSet = new DataSet()
		objCmd.Fill(ds, "members")

		' Välj en DataView och bind till serverkontrollen.
		MyDataList.DataSource = ds.Tables("members").DefaultView
		MyDataList.DataBind()

    End Sub

</script>

<html>
<head>
<title>ASP+: Hello, World</title>
</head>
<body>

    <form runat="server">
         <asp:DataList id="MyDataList" runat="server"></asp:DataList>
    </form>

</body>
</html>

Kan även nämna att jag råkade lägga till ett användar-dsn istället för ett system-dsn i ODBC.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)