我正在尝试将字符串数据从一种Web表单发送到另一种Web表单,但是它将引发System.NullReferenceException错误。我在Postgress文档中读到,该错误意味着没有数据可使用。这是第一种形式的代码:
protected void Button2_Click(object sender, EventArgs e)
{
editar ed = new editar(tname.Text.ToString());
//ed.putId(tname.Text.ToString());
String url = "editar.aspx";
Response.Redirect(url);
}
创建第二种形式的对象是我发现的发送数据的方法之一,但它总是引发错误。在第二种形式中,您应该收到它。
public editar(string name)
{
this.tname.Text = name;
}
基本思想是,以第二种形式接收字符串并将其放在文本框中,然后可以通过按钮在那里更新数据库的信息。
protected void Button2_Click(object sender, EventArgs e)
{
upt = new NpgsqlCommand("update usuario set cedula = '" + tcedula.Text.ToString() + "' where nombre = '" + tname.Text.ToString() + "'", conn);
upt.ExecuteNonQuery();
}
我已经尝试过POST和Session方法,这两个方法的问题是,尽管每次重新加载页面时数据都能正确到达,但每次按钮时数据都会重新加载,因此SQL语句会更新信息为null,即执行它,但不更新数据库。我使用Visual Studio 2019,ASP.NET和Postgres。
这里有两件事要理解:
因此,如果您有一个要在HTTP请求中使用的值,例如在这种情况下,当您有两种不同的形式时,您必须将其放在可以处理后面的HTTP请求时可用的位置。您可以通过以下几种方式进行操作:会话,GET(url)或POST参数,或者在第一个请求期间将其保存到数据库,然后在第二个请求中进行接收。
在这种情况下,会话值似乎是最合适的,但是如果不知道自己在做什么,就很难确定。
为了上帝的缘故,请修复明显的SQL注入问题。在不知情的情况下,您不应该为网络编写数据库代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句