检查有效的邮政编码是否与州/城市匹配,如果不在标签中,则输出"unknown"



我创建了一个程序,可以根据输入的邮政编码从数据库中提取相应的州/城市,但如果以世界"未知"的形式输入非有效、不相应的邮政编码,我需要帮助输出"错误"在州/城市标签中。

我尝试了一堆if语句,但无济于事。

private void BtnLookup_Click(object sender, EventArgs e)
{
    String cnStr;
    SqlConnection cn = new SqlConnection();
    cnStr = "Data Source=000.00.000.00;Initial Catalog=.  ;User ID=.  ;Password=.  ";
    //Assigns Connection string to the connection object
    cn.ConnectionString = cnStr;
    //Open the connection to the SQL Server
    cn.Open();
    //This statement creates the command object and passes in the SQL statement
    //then associates the command to the cn connection object
    SqlCommand cmd = new SqlCommand("select distinct state, city from tblZipcodes where zip = @ZipCode", cn);
    cmd.Parameters.Add(new SqlParameter("@ZipCode", SqlDbType.NVarChar) { Value = txtZip.Text });
    SqlDataReader rdrZip = cmd.ExecuteReader();
    while (rdrZip.Read())
    {
        String myString = rdrZip["state"].ToString().Trim();
        String myString2 = rdrZip["city"].ToString().Trim();
        lblState.Text = myString;
        lblCity.Text = myString2;
    }
    cn.Close();
}

如果输入了无效的 ZIP,则在州/城市标签中输入未知

一种选择是使用 SqlDataReader.HasRows 检查查询是否返回结果

获取一个值,该值指示 SqlDataReader 是否包含一行或多行。

你可以像这样实现它,

if (rdrZip.HasRows)
{
    while (rdrZip.Read())
    {
        String myString = rdrZip["state"].ToString().Trim();
        String myString2 = rdrZip["city"].ToString().Trim();
        lblState.Text = myString;    
        lblCity.Text = myString2;
    }
}
else
{
    lblState.Text = "Unknown";    
    lblCity.Text = "Unknown";
}

相关内容

最新更新