如何获取/编码来自数据集/数据库的单个数据值

时间:2013-12-24 13:10:27

标签: asp.net

这是数据库的例子


petType PetName PetDetails PetPrice

---------- ------------ -------------- ----------- -

cat_的 _ ___ 小猫 _ __ _ ___ < /强> _ __ _ _ _2000.00

dog_的 __ __ _ ___ _ __ _ __ _3000.00

bird_的 _ _ parrow _ __ _ _ __ _ ____ _1000.00


我做的代码:

PetStore.aspx

<form id="form1" runat="server">
<div>

    <p>
        <asp:label ID="Label1" runat="server" CssClass="DataWebControlStyle">
           <HeaderStyle CssClass="HeaderStyle" />
           <AlternatingRowStyle CssClass="AlternatingRowStyle" />
        </asp:label>
        &nbsp;</p>
</div>
</form>

PetStore.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    PetStoreTableAdapter petsAdapter = new PetStoreTableAdapter();
    label1.DataSource = productsAdapter.GetPetData();
    label1.DataBind();
}

所以我制作的那些代码只显示数据库中的所有数据......如果我只想显示单个值,如“kitty”而不是kitty的数据,我应该怎么办,但只有我想要的单词“kitty”在我的页面上的“label1.text”上显示..谢谢

4 个答案:

答案 0 :(得分:0)

您需要使用ExecuteScalar来获取单个值。检查以下链接。它将从结果集返回第一行的第一列。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx

另外,请检查以下URL,以便将值从executioncalar分配到label:

http://asp.net-informations.com/data-providers/asp-executescalar.htm

此外,您的示例令人困惑,因为您的示例中有gridview,说明中有label1.text。我假设你有一个label

答案 1 :(得分:0)

您需要的列在绑定字段中指定 例如

 <asp:ButtonField HeaderText="PetName "  DataTextField="PetName" Visible="false"  />

并使AutoGenerateColumns =“false”

  <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server" CssClass="DataWebControlStyle">
         <Columns>
            <asp:ButtonField HeaderText="PetName "  DataTextField="PetName" Visible="false"  />
          </Columns> 
           <HeaderStyle CssClass="HeaderStyle" />

           <AlternatingRowStyle CssClass="AlternatingRowStyle" />
        </asp:GridView>

答案 2 :(得分:0)

如果您需要Column值:

public DataSet GetPetDetails()
{
    DataSet ds = new DataSet();
    string connectString = constr.GetConString();
    using( var con = new OleDbConnection(connectString))
    using( var cmd = new OleDbCommand("select * from PetMaster", con))
    {
        con.Open();
        using(var adp = new OleDbDataAdapter(cmd))
        {
            adp.Fill(ds);
        }
    }
    return ds;
}

要显示All Column Values 'PetName' Comma protected void Bind() { DataSet ds = new DataSet(); ds = GetPetDetails(); if (ds != null) { foreach (DataTable table in ds.Tables) { foreach (DataRow dr in table.Rows) { label1.text += dr["PetName"].ToString()+","; } } } } protected void Page_Load(object sender, EventArgs e) { Bind(); } 分隔:

label1.text=ds.Tables[0].Rows[0]["PetName"].ToString();

单柱&amp;单行值:(仅限单词Kitty)

{{1}}

注意:请考虑上表中提到的示例数据。 '0'是DataSet中的行号&amp; PetName是专栏。

如果有任何问题,请告诉我吗? 希望这可以帮助你......! :)

答案 3 :(得分:-1)

为了从数据库中只获取一条记录或从数据库中逐一记录,“数据读取器”是一种很好的方法。检查下面的网站您可以在数据读取器上获得清晰的想法。

http://www.aspdotnet-suresh.com/2012/10/aspnet-difference-between-datareader.html

例如:

  SqlConnection connection=New SqlConnection("your connection string");
    SqlCommand command = new SqlCommand(
      "SELECT  PetName  FROM TableName;",
      connection);
    connection.Open();

    SqlDataReader reader = command.ExecuteReader();

    if (reader.HasRows)
    {
        while (reader.Read())
        {
            Label.Text=reader[0].ToString();
        }
    }
    else
    {
        Console.WriteLine("No rows found.");
    }
    reader.Close();