【问题标题】:Objects from database to fill list [closed]从数据库到填充列表的对象[关闭]
【发布时间】:2014-05-09 09:41:43
【问题描述】:

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

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

如何制作包含电影所有数据的电影对象(movieID、movieName、movieLength、movieDesc)

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

我们正在使用 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();

【问题讨论】:

  • 请显示您拥有的代码以及不工作的代码。
  • 问题是我实际上不知道从哪里开始。我想制作一个包含一部电影的所有数据的movieObject,这样我就可以创建一个包含所有电影中的所有数据的列表,我从我的数据连接中添加了一些代码,这样你就知道这个想法是什么了
  • Google 实体框架。
  • @Ajay 我已部分还原了您的编辑。请不要在 C# 和 WCF 等技术名称中使用反引号。
  • @MathiasBæchLarsen,您已添加插入。就目前而言,这没关系,但是您需要获取列表。您尝试从数据库中检索什么?检索后,您打算如何在程序中表示它?

标签: c# sql wcf


【解决方案1】:

您可以选择使用 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();
    }
}

【讨论】:

  • 感谢您的回答,并将其标记为答案,因为我相信如果我有足够的大脑能力来理解它,它会起作用。我对编程真的很陌生,将尝试在互联网上寻找有关此问题的深入指南。
【解决方案2】:

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

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;检查您的数据库表是否包含数据

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    相关资源
    最近更新 更多