我该如何解决这个错误? “名称‘TextBox1’在当前上下文中不存在”

问题描述 投票:0回答:2
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Add_drugs2 : System.Web.UI.Page
{
     SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\R.mdf;Integrated Security=True");

     protected void Page_Load(object sender, EventArgs e)
     {
     }

     protected void Button1_Click(object sender, EventArgs e)
     {
          SqlCommand cmd = con.CreateCommand();
          cmd.CommandType = CommandType.Text;
          cmd.CommandText = "insert into drugs2 (Science_name) values('" + TextBox1.Text + "');

          cmd.ExecuteNonQuery();
     }
}

这是我的标记文件:

<asp:TextBox ID="TextBox1" runat="server" Width="152px"></asp:TextBox>

我收到这个错误

当前上下文中不存在名称“TextBox1”

我该如何解决这个错误?我尝试将数据添加到我的数据库

c# asp.net webforms
2个回答
0
投票

好的,所以这里有几个可能的问题。

首先,你不再显示任何标记然后只是你的文本框。

在大多数情况下,只需将文本框放入标记中就可以,而且应该可以。

但是也有不少例外,比如将文本框放在repeater,甚至是listview,gridview里面。

所以,我会为初学者创建一个空白的新网页。

然后,从工具箱中拖放文本框。

所以,我们有这个:

所以你可能弄乱了页面上的标记。它看起来应该与上面类似。

现在我们的代码,像这样说:

protected void Button1_Click(object sender, EventArgs e)
{
    string sCon =
        @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\R.mdf;Integrated Security=True";

    using (SqlConnection con = new SqlConnection(sCon))
    {
        string strSQL =
            "insert into drugs2 (Science_name) values(@sname)";

        using (SqlCommand cmd = new SqlCommand(strSQL, con))
        {
            cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = TextBox1.Text;
            con.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

所以,请记住,如果您的文本框“嵌套”在许多所谓的数据绑定控件(listview、gridview、repeater 等)中,那么您不能直接使用控件名称(您需要共享更多您的标记,然后我们可以帮助更好地解决您的问题)。


-2
投票

请多思考多尝试。 您可以先获取 TextBox1 的文本,然后将其保存到临时字符串中。 一些代码如下所示:

string text = TextBox1.Text;
cmd.CommandText = "insert into drugs2 (Science_name) values('"+ text + "')";
© www.soinside.com 2019 - 2024. All rights reserved.