私は2つのテーブルを持っています:
イベント:
-id; 名前; 開始イベント; エンドイベント; 個人ID;
登録Korisnik:
-id; イム;
今、私はこれを書いています:
SqlDataAdapter da = new SqlDataAdapter(
"SELECT [id], [name], [eventstart], [eventend] " +
"FROM [Event] " +
"WHERE NOT (([eventend] <= @start) OR ([eventstart] >= @end))",
con);
この表示名だけで、eventstart、eventend. ここで、 Person テーブルから name を表示し、 event から name, eventstart, eventend を表示したいと思います。Event テーブルで、Event テーブルの PersonID を Person テーブルの ID フィールドに結合したいと思います。手伝って頂けますか?
編集:すべてのコードで、p.imeを表示しない理由がわからない
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstDayOfWeek(new DateTime(2012, 09, 17));
DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days);
DataBind();
}
}
protected DataTable dbGetEvents(DateTime start, int days)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=Korisnik;Integrated Security=True";
//SqlDataAdapter da = new SqlDataAdapter("SELECT [id], [name], [eventstart], [eventend] FROM [Event] WHERE NOT (([eventend] <= @start) OR ([eventstart] >= @end))", con);
//SqlDataAdapter da = new SqlDataAdapter("select e.id as EventId, e.name as EventName, e.eventstart, e.eventend, p.Id as PersonId, p.ime as PersonName from Event e inner join RegistracijaKorisnik p on e.PersonID=p.id where not (([eventend] <= @start) OR ([eventstart] >= @end))", con);
//SqlDataAdapter da = new SqlDataAdapter("SELECT e.id, e.name, e.eventstart, e.eventend, p.ime FROM Event e INNER JOIN RegistracijaKorisnik p ON e.PersonID = p.id WHERE NOT ((e.eventend <= @start) OR (e.eventstart >= @end ))", con);
SqlDataAdapter da = new SqlDataAdapter("SELECT e.id, e.name, e.eventstart, e.eventend, p.ime AS 'Person Name' FROM Event e INNER JOIN RegistracijaKorisnik p ON e.PersonID = p.id WHERE NOT ((e.eventend <= @start) OR (e.eventstart >= @end ))", con);
da.SelectCommand.Parameters.AddWithValue("start", start);
da.SelectCommand.Parameters.AddWithValue("end", start.AddDays(days));
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}