I have an Event Table with ContactID as foreign key. When I delete a contact from Contact Table, I set ContactID in Event Table to NULL.
In Event GridView I am displaying Event Information along with ContactName and Number from Contact Table.
GridView:
<asp:GridView ID="GridView4" runat="server" ShowHeaderWhenEmpty="true" CssClass="table table-striped" style="font-family:sans-serif; font-size:medium" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="StartDate" HeaderText="Date" />
<asp:HyperLinkField DataTextField="Title" DataNavigateUrlFields="ID" DataNavigateUrlFormatString="~/Views/Portal/ViewEvent.aspx?evtID={0}" HeaderText="Event" ItemStyle-Width="150px" ></asp:HyperLinkField>
<asp:BoundField DataField="Name" HeaderText="Contact Name" />
<asp:BoundField DataField="Cell" HeaderText="Contact #" />
<asp:BoundField DataField="EventType" HeaderText="Type" />
<asp:BoundField DataField="Confirmed" HeaderText="Status" />
<asp:BoundField DataField="Comments" HeaderText="Comments" />
</Columns>
Query:
SELECT Event.ID, Event.StartDate, Event.Title,Contact.Name,Contact.Cell,Event.EventType, Event.Confirmed,Event.Comments
FROM Event
LEFT JOIN Contact ON Event.ContactID=Contact.ID
aspx.cs:
string myConnection = dbController.connectionString;
SqlConnection conn = new SqlConnection(myConnection);
string query = query = "SELECT Event.ID, Event.StartDate, Event.Title, Contact.Name, Contact.Cell, Event.EventType, Event.Confirmed, Event.Comments FROM Event LEFT JOIN Contact ON Event.ContactID=Contact.ID";
GridView4.DataSource = null;
GridView4.DataBind();
DataTable dt = new DataTable();
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(query, conn);
da.Fill(dt);
conn.Close();
if (dt.Rows.Count > 0)
{
GridView4.DataSource = dt;
GridView4.DataBind();
}
The rows show up just fine in Sql Server Management Studio. But on web interface the rows where ContactID is NULL don't show.
Kindly guide me in the right direction.