Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查有效邮政编码是否与州/市匹配并输出;“未知”;如果不是在标签中_C#_Sql_Sql Server_Winforms - Fatal编程技术网

C# 检查有效邮政编码是否与州/市匹配并输出;“未知”;如果不是在标签中

C# 检查有效邮政编码是否与州/市匹配并输出;“未知”;如果不是在标签中,c#,sql,sql-server,winforms,C#,Sql,Sql Server,Winforms,我创建了一个程序,可以根据输入的邮政编码从数据库中提取相应的州/市,但是如果以“未知”的形式输入了无效的、不对应的邮政编码,则需要帮助输出“错误”,并将其放在州/市标签中 我试过很多if语句,但都没有用 private void BtnLookup_Click(object sender, EventArgs e) { String cnStr; SqlConnection cn = new SqlConnection(); cnStr = "Data Source=0

我创建了一个程序,可以根据输入的邮政编码从数据库中提取相应的州/市,但是如果以“未知”的形式输入了无效的、不对应的邮政编码,则需要帮助输出“错误”,并将其放在州/市标签中

我试过很多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,则将unknown放入州/城市标签中

一个选项是使用

获取一个值,该值指示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";
}

如果查询未返回任何结果,则不会进入while循环。因此,您可以使用默认值“Unknown”初始化标签,作为选项之一。您可以指定一个内联if语句来检查结果,如果结果作为未知数据匹配,则指定标签所需的内容。@User46使用LINQ查询数据库,而不是使用SqlCommand。那会好得多。