我正在创建一个使用asp.net将信息发送到mysql服务器的网站。码。我遇到的问题是,当我调试代码并启动页面时,我收到这些错误:
我不知道为什么,我有这个错误。 这是我的代码:
Default.aspx的
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default"%>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<form id="form1" runat="server">
<div>
<table width="300px" >
<tr>
<td>First Name</td>
<td>
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td >Last Name</td>
<td>
<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>User Name</td>
<td>
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Password</td>
<td>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Email Address</td>
<td>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td> </td>
<td>
<asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />
</td>
</tr>
<tr>
<td> </td>
<td>
<asp:Label ID="lblError" runat="server" Text=""></asp:Label>
</td>
</tr>
</table>
</div>
</form>
</asp:Content ID="Content1" runat="server" ContentPlaceHolderID="MainContent">
Default.aspx.cs
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSave_Click(object sender, EventArgs e)
{
try
{
string cnnString = "Server=localhost;Port=1111;Database=ci_series;Uid=asdfasdf;Pwd=*******";
MySqlConnection connection = new MySqlConnection(cnnString);
string cmdText = "INSERT INTO membership (first_name ,last_name ,username ,password ,";
cmdText += "email_address)VALUES (first_name ,last_name ,username ,password ,email_address);";
MySqlCommand cmd = new MySqlCommand(cmdText, connection);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("?first_name", MySqlDbType.VarChar).Value = txtFirstName.Text;
cmd.Parameters.Add("?last_name", MySqlDbType.VarChar).Value = txtLastName.Text;
cmd.Parameters.Add("?username", MySqlDbType.VarChar).Value = txtUserName.Text;
cmd.Parameters.Add("?password", MySqlDbType.VarChar).Value = txtPassword.Text;
cmd.Parameters.Add("?email_address", MySqlDbType.VarChar).Value = txtEmail.Text;
connection.Open();
int result = cmd.ExecuteNonQuery();
lblError.Text = "Data Saved";
}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}
}
我该如何解决这个问题? “当前背景下不存在”是什么意思?提前谢谢!
答案 0 :(得分:4)
1)确保runat =“server”在主页上的html标签上。
2)有时你会因为和汇编缓存问题而得到这个错误,因为VS对实际需要重新编译的内容感到困惑。 - 我只是删除缓存项并正常重新编译,认为不止一件事可能是错误的
答案 1 :(得分:2)
你有2个问题
</asp:Content> instead </asp:Content ID="Content1" runat="server" ContentPlaceHolderID="MainContent">
。它已经发表了piLHa的评论
您在内容页面中不需要form tag
。已在form tag
中定义master page
,因此请删除内容页面中的form tag
。
答案 2 :(得分:2)
在将旧的VS2005 aspx / aspx.cs文件放入VS2013中的新项目时,我遇到了类似的问题。我通过创建一个新的Web应用程序,为每个aspx页面创建一个新的webform并复制.aspx和.cs的代码来解决这个问题。复制后,我必须先更改.cs文件第一行,使用 CodeBehind而不是CodeFile 。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="_Login" %>
要
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="_Login" %>
我希望这有助于其他人。
答案 3 :(得分:0)
当我使用c#aspx进行编码时,我遇到了同样的问题,我想出了这样的问题:
我错误地从我的XXX.aspx文件中删除了 Inherits =&#34; project_name.ClassName &#34; ,这是我XXX.aspx中的第一行文件..然后当我将继承=&#34; project_name.ClassName &#34; 这段代码添加到我的XXX.aspx第一行到我的文件然后呢解决了我的问题。您应该控制XXX.aspx文件中的第一行,您可以错误地删除继承=&#34; project_name.ClassName &#34; .... / p>
我希望你能找到答案的问题。
祝你好运答案 4 :(得分:0)
在@page标记
中替换.aspx页面的以下代码替换它:&lt;%@ Page Language =“C#”AutoEventWireup =“true”CodeBehind =“Test.aspx.cs”Inherits =“Namespace.Test”%&gt;
替换为:&lt;%@ Page Language =“C#”AutoEventWireup =“true”CodeFile =“〜/ Test.aspx.cs”CodeBehind =“Test.aspx.cs”Inherits =“Namespace.Test”%&gt ;
答案 5 :(得分:-1)
右键单击“WebApplication”
并点击“转换为Web应用程序”