从数据库到填充列表的对象

本文关键字:对象 列表 填充 数据库 | 更新日期: 2023-09-27 18:02:27

我正在做一个学校项目,我们正在预订电影院。该程序的标准之一是在列表中显示数据库中的所有电影。

我知道这可能是一个非常简单的问题,但我需要一个指向正确方向的指针。

如何制作包含电影所有数据的电影对象(movieIDmovieNamemovieLengthmovieDesc(

如何使用这些数据填写列表?

我们正在使用C#中的WCF在基于客户端/服务器的体系结构中编写程序

如果你需要进一步的阐述或细节,请告诉我。

提前谢谢。这是我在数据库中创建电影的代码,我不确定如何从同一数据库中创建一个电影对象,以便在我的代码中使用。

SqlConnection sc = new SqlConnection();
sc.ConnectionString = ("Data Source=balder.ucn.dk;Initial Catalog=dmaa0213_6;********");
SqlCommand com = new SqlCommand();
sc.Open();
com.Connection = sc;
com.CommandText = ("INSERT into movies (movieName, movieLength, movieDescription) VALUES  ('" + movieName + "','" + movieLength + "','" + movieDesc + "');");
com.ExecuteNonQuery();
sc.Close();

从数据库到填充列表的对象

您可以选择使用像NHibernation这样的休眠层或来自Microsoft的更好的EntityFramework,或者,您必须手动执行。如果是这样的话,你必须创建一个像这样的Movie对象:

public class Movie
{
    public string MovieID { get; set; }
    public string MovieName { get; set; }
    public string MovieLength { get; set; }
    public string MovieDesc { get; set; }
}

然后,您可以将数据库查询读取到读取器中,并将对象填充到列表中,如下所示:

List<Movie> listOfMovies = new List<Movie>();
using(SqlConnection connection = new SqlConnection("Data Source=balder.ucn.dk;Initial Catalog=dmaa0213_6;********"))
{
    using(SqlCommand cmd = new SqlCommand(connection))
    {
        cmd.CommandString = "SELECT * FROM movies ORDER BY MovieId";
        connection.Open();
        using(SqlDataReader reader = cmd.ExecuteDataReader())
        {
            while(reader.Read())
            {
                Movie item = new Movie();
                item.MovieId = reader.GetInt32(0);
                item.MovieName = reader.GetString(1);
                item.MovieLength = reader.GetString(2);
                item.MovieDesc = reader.GetString(3);
                listOfMovies.Add(item);
            }
        }
        connection.Close();
    }
}

您可以尝试此代码来填充下拉列表、网格等。

SqlConnection sc = new SqlConnection("Data Source=balder.ucn.dk;Initial Catalog=dmaa0213_6;********");
string query="SELECT * FROM movies ORDER BY MovieId";
datatable dt=new datatatable(); //using system.data;
sc.Open();
SqlCommand com = new SqlCommand(query,sc);
SqlDataAdapter da=new SqlDataAdapter(com );
da.fill(dt);
sc.Close();

dt中此代码的结果将包含数据库中的所有数据。

检查数据库表是否包含数据是否使用dt.rows.count;