Jag tror att du glömt importera System.Data. Skriva detta överst på din sida:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
9 svar · 348 visningar · startad av ampy
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?
Jag tror att du glömt importera System.Data. Skriva detta överst på din sida:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
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:
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
På din rad får jag:
Compiler Error Message: BC30247: 'Protected' is not valid on a local variable declaration.
skapar du din datalist on the fly eller är den en kontroll som redan ligger i aspx sidan?
cya,
PatrikB
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>
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?
...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>
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.