【发布时间】:2014-04-05 14:59:30
【问题描述】:
CourseRepeater cr = new CourseRepeater();
List<CourseRepeater> course = new List<CourseRepeater>();
string sql = "SELECT u.Name, u.Surname, c.Name, c.ClosingDate, c.BeginDate FROM Course AS c, JOIN Users AS u on u.UserID=c.UserID";
DataTable dt = DataBase.SQLSelect(sql);
if (dt.Rows.Count != 0)
{
cr.Name = dt.Rows[0]["Name"].ToString(); // ?
}
我有包含SQLSelect() 的Database 类。这里没有问题。
我的问题是这样的:如果我想在这一行得到Users.Name、dt.Rows[0]["Name"],我应该写dt.Rows[0]["Name"]或dt.Rows[0]["u.Name"]?
【问题讨论】:
-
但我也有
Course.Name。 -
浏览器如何知道我的意思是它们中的哪一个。
-
好吧,我想如果您将
c.Name设为c.Name AS CourseName,那将是一个更好的做法 -
您应该在查询中为它们设置别名。 dt.Rows[0]["u.Name"] 真的有效吗?您可以使用序数位置来获得您想要的 dt.Rows[0][0],但那样脆弱。再次别名为 u.Name UsersName,c.Name CourseName 是更好的选择。
-
"SELECT u.Name AS UserName, u.Surname, c.Name AS CourseName , c.ClosingDate, c.BeginDate FROM Course AS c, JOIN Users AS u on u.UserID=c.UserID"所以?