1

我目前正在从事一个学校项目,并希望有人可以为我提供以下在线教程。这是一个家庭作业,所以我不是在找人给我答案,但我想找到一个与我预期的解决方案相似的教程。我一直在谷歌搜索 SQLDataReader 和 Linq,但无法找到类似于我所追求的解决方案。

我正在将我的 C# 客户端项目连接到 SQL 数据库。该数据库包含一个 Dogs 表和一个 BreedOfDog 表,以说明狗可以是混合品种的事实。BreedOfDog 有两个值,DogId 和 BreedId,将 Dog 表连接到 Breed 表。在我的客户端应用程序中,有一个为狗提供信息的容器。还有一个包含品种对象列表的 Dog 类。品种对象列表将用于用狗的品种填充列表框。这是我打算用伪代码做的:

创建一个允许多个结果集的 SQL 查询。我将使用 SQL 数据库中的存储过程

打开与 SQL 数据库的连接

执行将获取 Dog 对象列表的第一个查询

执行第二个查询。此查询将在第一个查询中为每只狗提取 DogId,在 BreedOfDog 上执行查询,创建 Breed 对象列表并将其添加到 Dog 对象。这将为 Dogs 列表中的每个 Dog 执行。

关闭连接

有没有好的教程可以指点我?

4

2 回答 2

1
    List<DogClass> Dogs = new List<DogClass>();
    string SQL = "select DogId from Dog";
    SqlCommand Command = new SqlCommand(SQL, Con);
    SqlDataReader Reader = Command.ExecuteReader();
    while (Reader.Read())
    {
        DogClass Dog = new DogClass(Reader, Con);
        Dogs.Add(Dog);
    }
    Reader.Close();

using System;
using System.Collections.Generic;
using System.Data.SqlClient;

class DogClass
{
    string DogId;
    List<BreedClass> Breeds = new List<BreedClass>();

    internal DogClass(SqlDataReader Reader, SqlConnection Con)
    {
        DogId = Convert.ToString(Reader.GetValue(Reader.GetOrdinal("DogId"))).Trim();
        string SQL = "select BreedOfDog from Breeds where DogID = '" + DogId + "'";
        SqlCommand Command = new SqlCommand(SQL, Con);
        SqlDataReader Reader2 = Command.ExecuteReader();
        while (Reader2.Read())
        {
            BreedClass Breed = new BreedClass(Reader);
            Breeds.Add(Breed);
        }
        Reader2.Close();
    }
}

using System;
using System.Data.SqlClient;

class BreedClass
{
    internal string Breed;

    internal BreedClass(SqlDataReader Reader)
    {
        Breed = Convert.ToString(Reader.GetValue(Reader.GetOrdinal("BreedOfDog"))).Trim();
    }
}
于 2013-03-27T20:41:21.910 回答
0

我记得在程序员学校(大学)做同样的问题!你会喜欢 linq to sql。你需要做的是:

  1. 右键单击要放置 linq 数据类的文件夹。单击添加新项目 -> LINQ to SQL 类。
  2. 然后,打开服务器资源管理器并将表拖放到 LINQ to SQL 类设计器上。
  3. 然后,进入您想要使用该类的 .cs 页面并为您的数据库类实例化一个新对象,例如DataClasses1DataContext db = new DataClasses1DataContext();.
  4. 然后,您可以通过 LINQ to SQL 语句操作数据库,就像IQueryable<BREED> breeds = db.BREEDs.Take(50);. 有关如何使用 LINQ 读取/写入/删除/等的信息,请参阅本文。http://msdn.microsoft.com/en-us/library/bb882643.aspx
于 2013-03-27T20:45:44.993 回答