我正在尝试从另一个表访问数据。我正在尝试到达GameName字段,但我真的不知道该怎么做。
我试图创建另一个过程,但这并没有真正解决。
PlayerGamesList.sql
...
SELECT
t.PlayerId,
t.GameId,
t.TeamId,
t.Position
FROM
[PlayerOnGame] t
PlayerOnGame.sql
CREATE TABLE [dbo].[PlayerOnGame]
(
[PlayerOnGameId] BIGINT PRIMARY KEY IDENTITY NOT NULL,
[PlayerId] BIGINT NOT NULL,
[GameId] BIGINT NULL,
[TeamId] BIGINT NOT NULL,
[Position] NVARCHAR(100) NULL,
...
)
和Game.sql
:
CREATE TABLE [dbo].[Game]
(
[GameId] BIGINT PRIMARY KEY IDENTITY NOT NULL,
[Name] NVARCHAR(100) NOT NULL,
...
)
如何访问此特定的GameId?我是说我该怎么做像GameId.Name这样的东西?
答案 0 :(得分:1)
在这种情况下,您不想看到游戏ID,而是想看到名称:
public class DatePickerFragment : Android.Support.V4.App.DialogFragment, DatePickerDialog.IOnDateSetListener
{
// TAG can be any string of your choice.
public static readonly string TAG = "X:" + typeof(DatePickerFragment).Name.ToUpper();
// Initialize this value to prevent NullReferenceExceptions.
Action<DateTime> _dateSelectedHandler = delegate { };
private static DateTime selectedDate = DateTime.Today;
public static DatePickerFragment NewInstance(Action<DateTime> onDateSelected)
{
DatePickerFragment frag = new DatePickerFragment();
frag._dateSelectedHandler = onDateSelected;
return frag;
}
public override Dialog OnCreateDialog(Bundle savedInstanceState)
{
DateTime currently = selectedDate;
DatePickerDialog dialog = new DatePickerDialog(Activity,
this,
currently.Year,
currently.Month - 1,
currently.Day);
return dialog;
}
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
// Note: monthOfYear is a value between 0 and 11, not 1 and 12!
selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth);
Log.Debug(TAG, selectedDate.ToLongDateString());
_dateSelectedHandler(selectedDate);
}
}
请注意,尽管您已经说过SELECT
t.PlayerId,
g.Name,
t.TeamId,
t.Position
FROM
[PlayerOnGame] t
INNER JOIN [Game] g ON g.GameId = t.GameId
可以为空,这意味着某些[PlayerOnGame].[Name]
记录没有设置[PlayerOnGame]
的可能性。 INNER JOIN将导致这些行从结果中消失。如果要保留它们并显示一个空值,请使其为[GameId]
而不是LEFT JOIN