Hej!
Jag använder följande kod för att visa lite namn ur en exempeldatabas. Nu är det så att det blir ett felmeddelande och det klagas på dg1.DataSource = objDataset.Tables("tbl");-raden som jag markerat extra.
Jag undrar vad som kan vara fel? Längre ner ser ni VB-koden som utför samma sak.
<%@ Page Language="C#" Strict="False" Debug="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
DataSet objDataset = new DataSet();
void Page_Load()
{
if(!Page.IsPostBack)
{
string CnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("../db2.mdb");
string SQL = "SELECT Namn FROM tbl";
OleDbConnection Cn = new OleDbConnection(CnStr);
OleDbDataAdapter objAdapter = new OleDbDataAdapter(SQL, Cn);
objAdapter.Fill(objDataset, "tbl");
[b]dg1.DataSource = objDataset.Tables("tbl");[/b]
dg1.DataBind();
ViewState("Dataset")=objDataset;
Cn.Close();
}
}
void ChangePage(Object objSender, DataGridPageChangedEventArgs e)
{
dg1.CurrentPageIndex = e.NewPageIndex;
DoDataBind();
}
void DoDataBind()
{
objDataset = ViewState("Dataset");
dg1.DataSource = objDataset.Tables("tbl");
dg1.DataBind();
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>C# paging^DataGrid & DataSet</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form runat="server">
<asp:datagrid id="dg1" runat="server" AllowPaging="True" PageSize="10" OnPageIndexChanged="ChangePage"
AutoGenerateColumns="True" Gridlines="None">
<PagerStyle Mode="NumericPages" />
</asp:dataGrid>
</form>
</body>
</html>
VB-kod:
<%@ Page Language="VB" Strict="False" Debug="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.Oledb" %>
<script runat="server">
Dim objDataset as New Dataset()
Sub Page_Load()
If Not Page.IsPostBack Then
Dim CnStr as string = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("../db2.mdb")
Dim SQL as string = "SELECT Namn FROM tbl"
Dim Cn as new OleDbConnection(CnStr)
Dim objAdapter as new OledbDataAdapter(SQL, Cn)
objAdapter.Fill(objDataSet, "tbl")
dg1.DataSource = objDataSet.Tables("tbl").DefaultView
dg1.DataBind()
ViewState("Dataset")=objDataSet
Cn.Close()
End if
End sub
Sub ChangePage(objSender as Object, e as DataGridPageChangedEventArgs)
dg1.CurrentPageIndex = e.NewPageIndex
DoDataBind()
End sub
Sub DoDataBind()
objDataset = ViewState("Dataset")
dg1.DataSource = objDataset.Tables("tbl").Defaultview
dg1.DataBind()
End Sub
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>VB paging^DataGrid & DataSet</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form runat="server">
<asp:datagrid id="dg1" runat="server" AllowPaging="True" PageSize="10" OnPageIndexChanged="ChangePage"
AutoGenerateColumns="True" Gridlines="None">
<PagerStyle Mode="NumericPages" />
</asp:dataGrid>
</form>
</body>
</html>
Tacksam för hjälp!