如何将数据库中的信息加载到Asp.Net中的Label?

时间:2018-02-04 05:58:48

标签: c# asp.net

当用户点击上一页的链接按钮时,我想从数据库中的特定列加载数据。

我正在使用 List<String> strings = new LinkedList<>(); strings.add("Java"); strings.add("is"); strings.add("cool"); String message = String.join(",", strings); //pass delimiter and List //message returned is: "Java,is,cool" 来执行此操作,但我收到错误:

  

索引超出了数组的范围。

这是我的代码:

SqlDataReader

其中

private void loadDetails()
{
    if (con.State == ConnectionState.Closed)
        con.Open();
    SqlCommand cmd = new SqlCommand("select expectation from Tours where tourName ='" + tournameLb.Text + "'", con);
    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@expectation", lb5.Text);

    SqlDataReader dr = cmd.ExecuteReader();

    while (dr.Read())
    {
        lb5.Text = dr[4].ToString(); //I get error here 
    }
    dr.Close();
    con.Close();
}

1 个答案:

答案 0 :(得分:1)

您正在使用值的参数,这是一种好方法,但您需要使用参数化查询:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

    if indexPath.row == desiredIndexPath { // the index where you want automatic dimension
        return UITableViewAutomaticDimension
    } else {
        return 100 // the height of every other cell.
    }

}

此外,您的查询只返回一列,但您尝试获取第五列的值并不存在:

SqlCommand cmd = new SqlCommand("select expectation from Tours where tourName = @expectation", con);

或者,您可以使用列的名称而不是索引:

lb5.Text = dr[0].ToString();