0

这是我从数据库中获取数据的代码隐藏:

public static string getTestimonial()
{

    string username = "xxxxx";
    SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["xxxxxxx"].ConnectionString);
    Conn.Open();
    string sql = "select testimonial,submitname from (SELECT TOP 1 * FROM dbo.testimonials where username='" + username + "' ORDER BY newid()) as answer;";
    SqlCommand cmd = new SqlCommand(sql, Conn);
    string test=cmd.ExecuteScalar().ToString();
    Conn.Close();

    return test;
}

然而,当我尝试在我的 aspx 页面上显示数据时,我得到的只是第一个值:

<div class="span3">

                    <%= getTestimonial() %>

                </div>

你能帮我用一种方法从查询中获取推荐和提交名称到变量中吗?

谢谢!

谢谢!解决了!使用:

public static string getTestimonial()
{

    string username = "xxxxxx";
    SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["xxxxxxx"].ConnectionString);
    Conn.Open();
    string sql = "select testimonial,submitname from (SELECT TOP 1 * FROM dbo.testimonials where username='" + username + "' ORDER BY newid()) as answer;";
    SqlCommand cmd = new SqlCommand(sql, Conn);
    var test = new StringBuilder();

    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            test.Append(reader.GetString(0));
            test.Append(" and ");
            test.Append(reader.GetString(1));
        }
    }

    Conn.Close();
    return test.ToString();






}
4

2 回答 2

0

顺便说一句,您可能应该重写该函数以不使用内联 SQL,因为以这种方式编写它可能会使您的站点容易受到 SQL 注入攻击。(推测,userid 在实际函数中没有设置为常量 XXXXX,而是以某种方式传入)。

于 2013-05-06T22:23:51.037 回答
0

ExecuteScalar()将始终返回第一行的第一列 - 单个值。您可能需要重新考虑您的方法,同时最简单的方法是让您的查询返回组合值:

string sql = "select testimonial + ' and ' + submitname from ....
于 2013-05-06T21:35:15.827 回答