【问题标题】:Return multiple values from sql to label从sql返回多个值到标签
【发布时间】:2011-09-08 09:53:42
【问题描述】:

我有标签:

<asp:Label ID="lbl1" runat="server"></asp:Label>

后面的代码:

protected void Page_Load(object sender, EventArgs e)
{
    lbl1.Text = ImageCheck().ToString();
}

还有:

protected int ImageCheck()
{
    SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\***.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    string CommandText2 = "SELECT * FROM Machreta WHERE noImage = 1";
    SqlCommand command2 = new SqlCommand(CommandText2, connection);
    connection.Open();
    int check = (int)command2.ExecuteScalar();
    connection.Close();

    return check;
}

如何返回多个值?该标签仅显示单个值,但表中还有 6 个。

【问题讨论】:

标签: c# asp.net sql


【解决方案1】:

试试这个:

    protected string ImageCheck()
    {

      var result = new StringBuilder();

    using(var connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\***.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"))
    {
        string CommandText2 = "SELECT * FROM Machreta WHERE noImage = 1";
        SqlCommand command2 = new SqlCommand(CommandText2, connection);
        connection.Open();

      using(var reader = command2.ExecuteReader())
      {
        while (reader.Read())
        {
          result.Append(reader.GetString(0));
        }
      }

      return result.ToString();

    }
 }

当然只是一个例子,并不能完全解决您的问题,但应该是一个起点:)

【讨论】:

    【解决方案2】:

    这里是 ExecuteScalar() 方法的解释。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar%28v=vs.71%29.aspx

    "执行查询,并返回查询返回的结果集中第一行的第一列。多余的列或行将被忽略。"

    此外,SELECT * 将获取所有列。您可能希望为单个列显示多个值。然后在select语句中选择列名。

    SELECT xyzColumn FROM Machreta WHERE noImage = 1
    

    最后,您只能将一个字符串分配给 label.text。因此,您必须连接所有这些字符串(单列的多个值),然后将其分配给标签文本。使用 reader 和 ExecuteReader() 方法而不是 ExecuteScalar()。

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      • 2014-01-05
      • 1970-01-01
      • 2014-06-20
      • 2010-09-21
      相关资源
      最近更新 更多