Tôi đang cố gắng chạy Project.aspx. Admin.apsx, khi nút 'VIEW PROFILE' được nhấp, được cho là tạo một phiên "project_id" để hai SQLDataSources nhận được các giá trị project_id từ Session ("project_id").Lỗi khi chuyển biến phiên sang SQLDataSource
Tôi nhận được lỗi này:
Project.aspx
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Project.aspx.vb" Inherits="Project" %>
<%@ Register assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" namespace="System.Web.UI.DataVisualization.Charting" tagprefix="asp" %>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div id="project-image"><asp:Image ID="Image1" runat="server" Height="124px" Width="93px" />
<asp:FormView ID="frmViewProject" runat="server" DataKeyNames="project_id" DataSourceID="SqlDataSource1" HorizontalAlign="Justify">
<EditItemTemplate>
project_id:
<asp:Label ID="project_idLabel1" runat="server" Text='<%# Eval("project_id") %>' />
<br />
project_type:
<asp:TextBox ID="project_typeTextBox" runat="server" Text='<%# Bind("project_type") %>' />
<br />
project_start:
<asp:TextBox ID="project_startTextBox" runat="server" Text='<%# Bind("project_start") %>' />
<br />
project_finish:
<asp:TextBox ID="project_finishTextBox" runat="server" Text='<%# Bind("project_finish") %>' />
<br />
project_duration:
<asp:TextBox ID="project_durationTextBox" runat="server" Text='<%# Bind("project_duration") %>' />
<br />
project_budget:
<asp:TextBox ID="project_budgetTextBox" runat="server" Text='<%# Bind("project_budget") %>' />
<br />
project_cost:
<asp:TextBox ID="project_costTextBox" runat="server" Text='<%# Bind("project_cost") %>' />
<br />
project_name:
<asp:TextBox ID="project_nameTextBox" runat="server" Text='<%# Bind("project_name") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<EditRowStyle BorderStyle="Solid" Font-Bold="False" Font-Names="Verdana" Font-Overline="False" Font-Size="Small" HorizontalAlign="Right" VerticalAlign="Middle" />
<InsertItemTemplate>
project_type:
<asp:TextBox ID="project_typeTextBox" runat="server" Text='<%# Bind("project_type") %>' />
<br />
project_start:
<asp:TextBox ID="project_startTextBox" runat="server" Text='<%# Bind("project_start") %>' />
<br />
project_finish:
<asp:TextBox ID="project_finishTextBox" runat="server" Text='<%# Bind("project_finish") %>' />
<br />
project_duration:
<asp:TextBox ID="project_durationTextBox" runat="server" Text='<%# Bind("project_duration") %>' />
<br />
project_budget:
<asp:TextBox ID="project_budgetTextBox" runat="server" Text='<%# Bind("project_budget") %>' />
<br />
project_cost:
<asp:TextBox ID="project_costTextBox" runat="server" Text='<%# Bind("project_cost") %>' />
<br />
project_name:
<asp:TextBox ID="project_nameTextBox" runat="server" Text='<%# Bind("project_name") %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
<InsertRowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemTemplate>
project_id:
<asp:Label ID="project_idLabel" runat="server" Text='<%# Eval("project_id") %>' />
<br />
project_type:
<asp:Label ID="project_typeLabel" runat="server" Text='<%# Bind("project_type") %>' />
<br />
project_start:
<asp:Label ID="project_startLabel" runat="server" Text='<%# Bind("project_start") %>' />
<br />
project_finish:
<asp:Label ID="project_finishLabel" runat="server" Text='<%# Bind("project_finish") %>' />
<br />
project_duration:
<asp:Label ID="project_durationLabel" runat="server" Text='<%# Bind("project_duration") %>' />
<br />
project_budget:
<asp:Label ID="project_budgetLabel" runat="server" Text='<%# Bind("project_budget") %>' />
<br />
project_cost:
<asp:Label ID="project_costLabel" runat="server" Text='<%# Bind("project_cost") %>' />
<br />
project_name:
<asp:Label ID="project_nameLabel" runat="server" Text='<%# Bind("project_name") %>' />
<br />
</ItemTemplate>
<RowStyle BorderStyle="None" HorizontalAlign="Left" VerticalAlign="Middle" />
</asp:FormView>
<asp:Chart ID="chrtComplete" runat="server" DataMember="DefaultView" DataSourceID="SqlDataSource2" EnableViewState="True">
<series>
<asp:Series ChartType="Pie" Legend="Completed" Name="Series1" XValueMember="project_start" YValueMembers="project_finish">
</asp:Series>
</series>
<chartareas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</chartareas>
<Legends>
<asp:Legend LegendStyle="Row" Name="Completed">
</asp:Legend>
</Legends>
<Titles>
<asp:Title Name="Project Completion">
</asp:Title>
</Titles>
</asp:Chart>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnStringDb1 %>" SelectCommand="SELECT [project_start], [project_finish] FROM [projects] WHERE ([project_id] = @project_id)">
<SelectParameters>
<asp:SessionParameter Name="project_id" SessionField="project_id" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</div>
<div id="project-info">
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnStringDb1 %>" SelectCommand="SELECT [project_id], [project_type], [project_start], [project_finish], [project_duration], [project_budget], [project_cost], [project_name] FROM [projects] WHERE ([project_id] = @project_id)">
<SelectParameters>
<asp:SessionParameter Name="project_id" SessionField="project_id" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</div>
<br />
</asp:Content>
Admin.aspx
Imports System.Data.SqlClient
Partial Class Admin
Inherits System.Web.UI.Page
Protected Sub btnSearchUser_Click(sender As Object, e As EventArgs) Handles btnSearchUser.Click
Dim conn As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim searchComm As String = "SELECT username FROM users WHERE CONTAINS (username, @username)"
Dim searchSQL As New SqlCommand
conn.Open()
searchSQL = New SqlCommand(searchComm, conn)
searchSQL.Parameters.AddWithValue("@username", txtUserSearch.Text)
Dim datareader As SqlDataReader = searchSQL.ExecuteReader()
While datareader.Read
lstUsers.Items.Add(datareader.Item("username"))
End While
datareader.Close()
conn.Close()
End Sub
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
End Sub
Protected Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles drpProjects.SelectedIndexChanged
Dim conn As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim sqlComm As String = "SELECT project_name FROM projects WHERE [email protected]"
Dim sqlProjname As New SqlCommand
conn.Open()
sqlProjname = New SqlCommand(sqlComm, conn)
sqlProjname.Parameters.AddWithValue("@projectname", drpProjects.SelectedItem.Text)
Dim datareader As SqlDataReader = sqlProjname.ExecuteReader()
datareader.Read()
If datareader.HasRows Then
lblProjName.Text = datareader("project_name").ToString()
End If
datareader.Close()
conn.Close()
lblProjName.Visible = True
grdProjDetails.Visible = True
End Sub
Protected Sub btnManageProj_Click(sender As Object, e As EventArgs) Handles btnManageProj.Click
MultiView1.SetActiveView(View2)
End Sub
Protected Sub btnProjSettings_Click(sender As Object, e As EventArgs) Handles btnProjSettings.Click
Dim conn2 As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim sqlComm2 As String = "SELECT project_id FROM projects WHERE [email protected]"
Dim sqlProjID As New SqlCommand
conn2.Open()
sqlProjID = New SqlCommand(sqlComm2, conn2)
sqlProjID.Parameters.AddWithValue("@projectname", drpProjects.SelectedItem.Text)
Dim datareader As SqlDataReader = sqlProjID.ExecuteReader()
datareader.Read()
If datareader.HasRows Then
Dim UserID As String
UserID = datareader("project_id").ToString
Session("project_id") = UserID
Server.Transfer("Project.aspx", True)
End If
datareader.Close()
conn2.Close()
End Sub
End Class
MasterPage.aspx
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<script runat="server">
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Session("userid") = Nothing Then
txtLoginUser.Visible = True
txtLoginPass.Visible = True
Else
Dim conn As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim useridComm As String = "SELECT name, surname FROM users WHERE [email protected]"
Dim sqlUserID As New SqlCommand
conn.Open()
Dim userid As String = Session("userid")
sqlUserID = New SqlCommand(useridComm, conn)
sqlUserID.Parameters.AddWithValue("@userid", userid)
Dim datareader As SqlDataReader = sqlUserID.ExecuteReader()
If datareader.HasRows Then
FormsAuthentication.RedirectFromLoginPage(datareader("user_id"), True)
lblLoggedIn.Text = datareader("name").ToString() & " " & datareader("surname").ToString()
End If
datareader.Close()
conn.Close()
End If
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs)
Dim loginSQL As New SqlCommand
Dim loginComm As String
Dim CommonFunctions As New CommonFunctions()
Dim dec_pass As String = CommonFunctions.EncryptPassword(txtLoginPass.Text.Trim)
Dim conn As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
loginComm = "SELECT user_id FROM users WHERE [email protected] and p[email protected]"
conn.Open()
loginSQL = New SqlCommand(loginComm, conn)
loginSQL.Parameters.AddWithValue("@username", txtLoginUser.Text.ToString)
loginSQL.Parameters.AddWithValue("@password", dec_pass)
Dim dr As SqlDataReader = loginSQL.ExecuteReader()
dr.Read()
If dr.HasRows Then
Session("userid") = dr("user_id")
ElseIf dr.HasRows = False Then
lblRegister.ForeColor = Drawing.Color.Red
lblRegister.Text = "Incorrect Username/Password."
End If
dr.Close()
conn.Close()
End Sub
</script>
<head>
<meta charset="utf-8" />
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />
</head>
<body>
<form id="form1" runat="server">
<div id="wrapper">
<header id="header">
<strong>Header:</strong> Mobile CMS
</header>
<section id="login">
<div id="login-form">
<p>
<asp:Label ID="lblUsername" runat="server" Font-Bold="True" Text="U:"></asp:Label>
<asp:TextBox ID="txtLoginUser" runat="server" BorderStyle="None" BorderWidth="0px" Wrap="False"></asp:TextBox>
<asp:Label ID="lblUsername0" runat="server" Font-Bold="True" Text="P:"></asp:Label>
<asp:TextBox ID="txtLoginPass" runat="server" BorderStyle="None" BorderWidth="0px" TextMode="Password" Wrap="False"></asp:TextBox>
<asp:Button ID="btnLogin" runat="server" BorderStyle="None" OnClick="Button1_Click" Text="Login" />
</p>
<p>
<asp:Label ID="lblRegister" runat="server" Font-Bold="True" Font-Underline="True" ForeColor="#0000CC" Text="Register"></asp:Label>
<asp:Label ID="lblLoggedIn" runat="server"></asp:Label>
</p>
<p>
</p>
</div>
</section>
<div class="navigation-bar">
<ul class="navigation-menu">
<li><a href="#" class="home">Home</a></li>
<li><a href="#" class="mainsettings">Settings</a></li>
<li><a href="#" class="profile">Profile</a>
<ul>
<li><a href="#" class="messages">Messages</a></li>
<li><a href="#" class="settings">Profile Settings</a></li>
</ul>
</li>
<li><a href="#" class="uploads">Uploads</a></li>
<li><a href="#" class="documents">Media</a>
<ul>
<li><a href="#" class="docs">Documents</a></li>
<li><a href="#" class="others">Others</a></li>
</ul>
</li>
<li><a href="#" class="projects">Projects</a>
<ul>
<li><a href="#" class="yprojects">Your Projects</a></li>
<li><a href="#" class="otherprojects">Other Projects</a></li>
</ul>
</li>
</ul>
</div>
<section id="middle">
<div id="container">
<div id="content">
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
</div>
</section>
<footer id="footer">
<strong>Footer:</strong> adsfdsgfds
</footer>
</div>
</form>
</body>
</html>
Ảnh chụp màn hình:
gì đang xảy ra? Có gì sai với mã?
Tôi đang sử dụng VS 2012 Professional với SQL Server 2012 nhanh
Mã cho 'Xem Tiểu Sử' nút là trong Admin.aspx dưới btnProjSettings:
Protected Sub btnProjSettings_Click(sender As Object, e As EventArgs) Handles btnProjSettings.Click
Dim conn2 As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim sqlComm2 As String = "SELECT project_id FROM projects WHERE [email protected]"
Dim sqlProjID As New SqlCommand
conn2.Open()
sqlProjID = New SqlCommand(sqlComm2, conn2)
sqlProjID.Parameters.AddWithValue("@projectname", drpProjects.SelectedItem.Text)
Dim datareader As SqlDataReader = sqlProjID.ExecuteReader()
datareader.Read()
If datareader.HasRows Then
Dim UserID As String
UserID = datareader("project_id").ToString
Session("project_id") = UserID
Server.Transfer("Project.aspx", True)
End If
datareader.Close()
conn2.Close()
End Sub
Mã bạn đã đăng trong câu hỏi của bạn không thực sự cung cấp nhiều để kiểm tra. Bạn đã có đánh dấu aspx cho trang Dự án, mã phía sau cho trang Quản trị và không có gì cho trang Chính. Nút Xem hồ sơ của bạn được xác định ở đâu? Bạn có thể xem [mục blog này] (http://weblogs.asp.net/leftslipper/archive/2007/02/26/sys-webforms-pagerequestmanagerparsererrorexception-what-it-is-and-how-to- avoid-it.aspx) để biết một số thông tin chi tiết về cách giải quyết vấn đề này. –
@MikeGuthrie Trang dự án không có bất kỳ mã nguồn vb.net nào khi tôi định cấu hình tất cả các nguồn dữ liệu thông qua thuật sĩ 'Định cấu hình Nguồn dữ liệu SQL'. Mã cho MasterPage nằm ở đầu trang – Brian
Đã thêm mã cho trang chính. – Brian