我目前正在开展一个学校项目,希望有人能指点我以下的在线教程。这是一个家庭作业,所以我不是在找人给我答案,但我想找一个类似于我想要的解决方案的教程。我一直在谷歌搜索SQLDataReader和Linq,并且找不到类似于我追求的解决方案。
我正在将我的C#客户端项目连接到SQL数据库。这个数据库包含一个Dogs表和一个BreedOfDog表,以说明狗可以是混合品种。 BreedOfDog有两个值,DogId和BreedId,它们将Dog表连接到Breed表。在我的客户端应用程序中,有一个容器,用于显示狗的信息。还有一个Dog类,其中包含品种对象列表。品种对象列表将用于使用狗的品种填充列表框。这是我打算用伪代码做的事情:
创建一个允许多个结果集的SQL查询。我将使用SQL数据库中的存储过程
打开与SQL数据库的连接
执行第一个获取Dog对象列表的查询
执行第二个查询。此查询将在第一个查询中为每只狗拉出DogId,在BreedOfDog上执行查询,创建Breed对象列表并将其添加到Dog对象。这将在狗的名单中为每只狗执行。
关闭连接
你可以指点我是否有一个好的turtorial?
答案 0 :(得分: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();
}
}
答案 1 :(得分:0)
我记得在程序员学校(大学)做同样的问题!你会喜欢linq to sql。你需要做的是:
DataClasses1DataContext db = new DataClasses1DataContext();
。IQueryable<BREED> breeds = db.BREEDs.Take(50);
一样简单。有关如何使用LINQ读/写/删除/等的信息,请参阅此文章。 http://msdn.microsoft.com/en-us/library/bb882643.aspx