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”
我该如何解决这个错误?我尝试将数据添加到我的数据库
好的,所以这里有几个可能的问题。
首先,你不再显示任何标记然后只是你的文本框。
在大多数情况下,只需将文本框放入标记中就可以,而且应该可以。
但是也有不少例外,比如将文本框放在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 等)中,那么您不能直接使用控件名称(您需要共享更多您的标记,然后我们可以帮助更好地解决您的问题)。
请多思考多尝试。 您可以先获取 TextBox1 的文本,然后将其保存到临时字符串中。 一些代码如下所示:
string text = TextBox1.Text;
cmd.CommandText = "insert into drugs2 (Science_name) values('"+ text + "')";