尝试将数据库表中的信息显示到列表框中

时间:2016-12-09 19:16:22

标签: c# sql asp.net database visual-studio

我目前正在尝试使用Visual Studio在c#中创建一个asp.net Web应用程序,并且可以使用一些帮助。

我的一个网页是注册页面,您选择一个单选按钮(父母或子女)并继续填写表格。我有它工作,以便根据您选择的单选按钮,信息存储在我的数据库中的父表或子表中。

我遇到的问题是下一步要求我显示孩子的详细信息(姓名,用户名和DOB)。我希望在表格中显示数据,但是我试图遵循的例子以及我自己尝试过的其他事情都没有运气。我的下一个想法是使用一个列表框,并使用我的代码中显示的注释掉的部分,我设法显示到表中的子项,但所有在一行。

由于我的代码现在显示,“ListBox1.Items.Add(读者......)中的'添加'下出现错误。它表示方法'添加'没有重载需要3个参数。我试过我在这里和网上其他地方找到的各种修复,但没有任何效果。

有人能告诉我如何正确显示值(每行1个孩子),甚至如何正确使用表格来显示孩子?

提前致谢!

Error regarding SqlDataAdapter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Diagnostics;
using System.Collections;


namespace Coursework
{
public partial class View_remove_children : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection connect = new SqlConnection("Data Source=THEBEAST;Initial Catalog=newregDB;Integrated Security=True;Pooling=False");

        connect.Open();

        SqlCommand cmd = new SqlCommand("SELECT [firstname], [dob], [ChildID] FROM [children]");
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.Connection = connect;

        //string temp = "";

        SqlDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            {
                //temp += reader["firstname"].ToString();
                //temp += reader["dob"].ToString();
                //temp += reader["gender"].ToString();
                //temp += "<br/>";
                ListBox1.Items.Add(reader["firstname"], reader["dob"], reader["ChildID"]);

            }

            connect.Close();
        }
    }
}

}

2 个答案:

答案 0 :(得分:3)

如果您需要表视图,最好使用GridView,将GridView控件拖放到设计器视图中,并执行以下操作

using(SqlConnection connect = new SqlConnection("Data Source=THEBEAST;Initial Catalog=newregDB;Integrated Security=True;Pooling=False"))
using(SqlCommand cmd = new SqlCommand("SELECT [firstname], [dob], [ChildID] FROM [children]", connect))
{
    connect.Open();
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    sda.Fill(dt);
    GridView1.DataSource = dt; //give your gridview name here
    GridView1.DataBind();//give your gridview name here
}

尝试一些关于gridview分组,编辑,插入等的教程。然后你可以自己决定是否适合你的要求。

Implement GridView Grouping: Group similar GridView Rows in ASP.Net

Simple Insert Select Edit Update and Delete in ASP.Net GridView control

答案 1 :(得分:0)

我会将连接字符串存储在.Config文件中,然后我会执行以下操作并将此代码放在静态方法中,例如

public static DataTable SelectData()
{
    var ConnString = ConfigurationManager.ConnectionStrings["YourConnectionString"].ConnectionString;
    SqlDataAdapter sda;
    DataTable dt;
    using (SqlConnection connStr = new SqlConnection(ConnString))
    {
        using (SqlCommand cmd = new SqlCommand("SELECT firstname, dob, ChildID FROM children", connStr))
        {
            cmd.CommandType = CommandType.Text;
            sda = new SqlDataAdapter(cmd);
            dt = new DataTable();
            new SqlDataAdapter(cmd).Fill(dt);
        }
    }
    return dt;
}