C# 页字段未按预期填充

本文关键字:填充 字段 | 更新日期: 2023-09-27 18:37:03

有人可以告诉我我做错了什么吗?我正在尝试在页面加载时自动调用该方法,但是它不起作用。

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        customerInformation();
    }
}
protected void ddNames_SelectedIndexChanged(object sender, EventArgs e)
{
    customerInformation();
}
private void customerInformation()
{
    string dbString = ConfigurationManager.ConnectionStrings["TechSupportDBConString"].ConnectionString;
    string query = "SELECT * FROM Customers WHERE Name='" + ddNames.Text + "'";
    SqlConnection Connection = new SqlConnection(dbString);
    Connection.Open();
    SqlCommand Com = new SqlCommand(query, Connection);
    SqlDataReader reader = Com.ExecuteReader();
    if (reader.Read())
    {
        lblName.Text = reader["Name"].ToString() + "'s Personal Information";
        lblAddress.Text = reader["Address"].ToString() + "'n" + reader["City"].ToString() + " " + reader["State"].ToString() + " " + reader["ZipCode"].ToString();
        lblPhone.Text = reader["Phone"].ToString();
        lblEmail.Text = reader["Email"].ToString();
        reader.Close();
        Connection.Close();
    }
}

C# 页字段未按预期填充

好的,

查看您的代码,我可以看到读取器和数据库的连接本身在循环中是封闭的,这不应该这样做。

SqlDataReader reader = command.ExecuteReader();    
if (reader.HasRows)
{
     while (reader.Read())
     {
                //populate fields from reader
     }
}
else
{
     lbl.Text = "No records found.";
}
reader.Close();
Connection.Close();

接下来,我注意到下拉选定的文本/值应该是ddNames.SelectedItem.Text的,或者在值传递ddNames.SelectedValue的情况下。

接下来,请确保每个读取器名称应与表列名称完全匹配。

最后但并非最不重要的一点是,在应用ToString().如果任何列具有空值ToString()则无法转换之前,请始终进行适当的空检查。

希望这有帮助。