【发布时间】:2020-09-28 17:00:28
【问题描述】:
我已经创建了这个“ShowSubcategories”方法,它工作得很好!
我还尝试使用内置命令“SqlDataReader”这似乎工作得很好, 直到我尝试使用左连接来输出实际的类别名称,而不仅仅是 sdr[2] 中的类别 ID。
我应该如何在 sqldatareader 中使用左连接输出,否则在这里尝试? sdr["类别名称"]
public static void ShowSubCategories(SqlConnection conn)
{
string SQL = (@"SELECT SubCategoryID, SubCategoryName, CategoryID,
SubCategoryEmployeeID FROM SubCategories
left join Categories on SubCategories.CategoryID=Categories.CategoryID");
SqlCommand command = new SqlCommand(SQL, conn);
SqlDataReader sdr = command.ExecuteReader();
while (sdr.Read())
{
Console.WriteLine("{0,-5} {1,-10} {2,-10} {3,-10}", sdr[0], sdr[1], sdr["CategoryName"], sdr[3]);
}
sdr.Close();
}
【问题讨论】:
-
结果中一开始就没有
CategoryName列。 DbDataReader用于读取服务器返回的结果,不能修改查询 -
在 C# 中尝试之前先在 SQL Server Management Studio 中测试查询。如果查询中有错误,SSMS 会显示错误,而 c# 不会。
标签: c# sql left-join sqldatareader