首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在webform中显示Server表数据

在webform中显示Server表数据
EN

Stack Overflow用户
提问于 2018-12-11 14:09:16
回答 2查看 998关注 0票数 1

我有一个应用程序,它应该允许用户从数据库中的表中查看宠物。

网页设计图片及Pets数据表:

下面是我的按钮代码:

代码语言:javascript
复制
protected void viewAnimalsBreedButton_Click(object sender, EventArgs e)
{
    try
    {
        SqlConnection cnn = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\FrendsWithPaws.mdf;Integrated Security=True");

        cnn.Open();
        SqlCommand command = new SqlCommand("SELECT PetID, Breed, Name, Age, Gender, Picture, Sanctuary FROM Pets WHERE Breed='+ breedDropDownList.SelectedValue +'", cnn);
        SqlDataReader reader = command.ExecuteReader();
        petsGridView.DataSource = reader;
        petsGridView.DataBind();
        cnn.Close();
    }
    catch (Exception ex)
    {
        Response.Write("error" + ex.ToString());
    }
}

首先,我有一个宠物品种的dropdownlist,当我在dropdown中选择一个breed并单击查看动物时,我希望gridview向我展示这个品种的宠物(包含大部分信息).我希望这个能为SpeciesSanctuary工作.

目前,当我选择一个品种并单击“查看动物”时,不会发生任何事情,如下图所示:

选择“家”品种后的网页形式图片,点击“查看动物”按钮:

我怎么才能让这个起作用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-11 14:11:28

首先,您应该始终使用参数化查询来避免SQL注入,并获得这类问题的解决方案。其次,您需要创建一个DataTable并通过数据读取器填充它,并将表绑定到网格:

代码语言:javascript
复制
cnn.Open();
SqlCommand command = new SqlCommand("SELECT PetID, Breed, Name, Age, Gender, Picture, " +
                                    "Sanctuary FROM Pets where Breed = @Breed ", cnn);

command.Parameters.AddWithValue("@Breed", breedDropDownList.SelectedValue);

DataTable table = new DataTable();
table.Load(command.ExecuteReader());    
petsGridView.DataSource = table;
petsGridView.DataBind();
cnn.Close();

尽管直接指定类型并使用Value属性,但它比AddWithValue更好。https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/

票数 2
EN

Stack Overflow用户

发布于 2018-12-11 14:13:27

您必须首先将读取的数据加载到datatable

代码语言:javascript
复制
protected void viewAnimalsBreedButton_Click(object sender, EventArgs e)
{
    try
    {
        SqlConnection cnn = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\FrendsWithPaws.mdf;Integrated Security=True");

        cnn.Open();
        SqlCommand command = new SqlCommand("SELECT PetID, Breed, Name, Age, Gender, Picture, Sanctuary FROM Pets WHERE Breed='" +  breedDropDownList.SelectedValue + "'", cnn);
        SqlDataReader reader = command.ExecuteReader();
        var dataTable = new DataTable();
        dataTable.Load(dataReader);
        petsGridView.DataSource = dataTable;
        petsGridView.DataBind();
        cnn.Close();
    }
    catch (Exception ex)
    {
        Response.Write("error" + ex.ToString());
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53725895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档