C# 将数据库中的值调用到文本字段中-自定义错误
我的page_load函数中有以下代码,它基本上根据用户输入的邮政编码从数据库返回一个值。问题是,我遇到了一个自定义错误问题。当我的另外两个文本字段被自动填充时,如果我等待5分钟然后提交,我将得到一个错误,但是,如果我在5分钟内提交,一切都会按预期进行。请告诉我从数据库调用值的方式是否错误,或者如何修复此错误?这就是错误:C# 将数据库中的值调用到文本字段中-自定义错误,c#,asp.net,.net,C#,Asp.net,.net,我的page_load函数中有以下代码,它基本上根据用户输入的邮政编码从数据库返回一个值。问题是,我遇到了一个自定义错误问题。当我的另外两个文本字段被自动填充时,如果我等待5分钟然后提交,我将得到一个错误,但是,如果我在5分钟内提交,一切都会按预期进行。请告诉我从数据库调用值的方式是否错误,或者如何修复此错误?这就是错误: <!-- Web.Config Configuration File --> <configuration> <system.web&
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
这是我的配置文件(请注意,我将我的凭据替换为……):
好的,没什么不对的,从你说的话来看,连接似乎关闭了:
- 您应该在需要时创建连接,完成后释放连接
- 邮政编码不是int类型
将给您意外的结果,因为 零将被删除Convert.ToInt32
- 您还需要学习如何使用参数化查询,这将避免
- SQL注入,还可以避免语法错误
+SELECT*
是一些bug的接收器,如果您有过的话 修改表结构或查询您可以中断代码,而不是使用列索引使用名称,并且不使用通配符.GetValue()
选择特定字段*
- 最后但并非最不重要的一点是,使用
using语句 处理物品的有效方法
好吧,没什么不对的,从你所说的来看,连接似乎关闭了:
- 您应该在需要时创建连接,完成后释放连接
- 邮政编码不是int类型
将给您意外的结果,因为 零将被删除Convert.ToInt32
- 您还需要学习如何使用参数化查询,这将避免
- SQL注入,还可以避免语法错误
+SELECT*
是一些bug的接收器,如果您有过的话 修改表结构或查询您可以中断代码,而不是使用列索引使用名称,并且不使用通配符.GetValue()
选择特定字段*
- 最后但并非最不重要的一点是,使用
using语句 处理物品的有效方法
小贴士:期待你的来访。她可能是你的新好朋友。至于你的问题,你的会议在5分钟后结束吗?是的,我的会议在5分钟后结束。我没有收到任何语法错误。这与5分钟的会话有什么关系?我很困惑,一定是丢失了相关代码。让我澄清一下,这不完全是5分钟,而是当我填写数据时,我等待了一段时间,比如说4分钟,然后点击提交,我得到了错误页面。如果我填写数据并点击提交,一切正常!小贴士:期待你的来访。她可能是你的新好朋友。至于你的问题,你的会议在5分钟后结束吗?是的,我的会议在5分钟后结束。我没有收到任何语法错误。这与5分钟的会话有什么关系?我很困惑,一定是丢失了相关代码。让我澄清一下,这不完全是5分钟,而是当我填写数据时,我等待了一段时间,比如说4分钟,然后点击提交,我得到了错误页面。如果我填写数据并点击提交,一切正常!非常感谢你!那是因为我关闭了我的连接!非常感谢您提供的上述示例,我绝对需要使用您的方法!非常感谢你,非常感谢!那是因为我关闭了我的连接!非常感谢您提供的上述示例,我绝对需要使用您的方法!非常感谢你。
protected void Page_Load(object sender, EventArgs e)
{
if (txtzip.Text.Length == 5)
{
SqlCommand Comm1 = new SqlCommand("SELECT TOP(1) * FROM zip_code WHERE zip = '" + Convert.ToInt32(txtzip.Text) + "'", conn);
conn.Open();
SqlDataReader DR1 = Comm1.ExecuteReader();
if (DR1.Read())
{
txtstate.Text = DR1.GetValue(2).ToString();
txtcity.Text = DR1.GetValue(1).ToString();
}
conn.Close();
}
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="aConn" connectionString="Data Source=.......;Initial Catalog=aspData;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=......"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=......."/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=........"/>
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5"/>
</system.web>
</configuration>
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(
"SELECT TOP(1) city, state FROM zip_code WHERE zip = @zip", connection))
{
command.Parameters.Add(new SqlParameter("zip", txtzip.Text));
SqlDataReader reader = command.ExecuteReader();
if(reader.HasRows())
{
var city = reader["city"].ToString();
var state = reader["state"].ToString();
Console.WriteLine("City = {0}, State = {1}",
city,
state)
txtstate.Text = city
txtcity.Text = state;
}
}
}