如何在数据库表中显示一些项目(多个项目中的项目)?

时间:2013-06-07 08:36:59

标签: c# database

C#visual studio 2012专业asp.net

我有一个包含用户名的表:Josh,Jeremy,Jared,Justin ......

我创建了一个网页gridview,显示整个表格,但我只想让它显示Justin而不是其他内容。

我该怎么做?

以下是一些无效的代码:

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    SqlDataReader rs;

    con.Open();

    SqlParameter uName = new SqlParameter("paramFName", Account.Text);

    cmd.Parameters.Add(uName);

    cmd.CommandText = "SELECT * FROM Transactions WHERE FName=@paramFName";
    rs = cmd.ExecuteReader();

    cmd.Parameters.Clear();
    rs.Close();

我应该创建一个桌面视图吗?我试过但没有成功。

提示?

3 个答案:

答案 0 :(得分:2)

如果您尝试选择前10个名称,那么您需要将SQL Select更改为以下内容:

cmd.CommandText = "SELECT TOP 10 * FROM Transactions WHERE FName=@paramFName";

那是你所追求的吗?

修改

好的,所以你实际上并没有在任何地方显示你的实际问题。

您需要创建一个数据表并在gridview中显示它。

查看以下链接以获取示例:

Gridview examples

MSDN Gridview examples

答案 1 :(得分:2)

您只是错过了参数名称中的"@"

SqlParameter uName = new SqlParameter("@paramFName", Account.Text);

如果你的where子句,这会导致你没有为指定的参数提供任何内容,只是让查询提供者忽略这个条件,从而产生有效的查询SELECT * FROM Transactions

除此之外,您应该考虑使用using块:

using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"))
using (SqlCommand cmd = new SqlCommand())
{
    cmd.Connection = con;
    cmd.CommandText = "SELECT * FROM Transactions WHERE FName=@paramFName";
    cmd.Parameters.AddWithValue("@paramFName", Account.Text);

    con.Open();
    using (var rs = cmd.ExecuteReader())
    {
        //ToDo: Do something with the reader.
    }
}

另一个提示:如果您需要在结果中填写DataTable,则可以使用SqlDataAdapter代替使用数据阅读器:

using (var adapter = new SqlDataAdapter(cmd))
{
    var dataTable = new DataTable();
    dataTable.TableName = "QueryResult";
    adapter.Fill(dataTable);

    return dataTable;
}

答案 2 :(得分:0)

您的代码似乎没问题,但您没有提供太多信息。

如果您使用的是SQL Server 2012,请查看关键字OFFSET and FETCH。 对于早期版本,您需要使用ROW_NUMBER OVER PARTITION

作为一种好的做法,您应该始终限制返回的元素数量。