2 つのユーザー コントロールを表示するフレンド リスト ページがあります。
この最初のコントロールには現在のすべての友達が表示され、もう 1 つのコントロールには現在の友達リクエストが表示されます。
ユーザー コントロールは次の順序でロードされます。
・現在の友達・友達
リクエスト
それぞれほぼ同じ方法で DB を検索し、 の同じ構造を使用し、List<>
非常によく似た にバインドしRepeaters
ます。
私が得ている現在の問題はこれです:
ExecuteReader requires an open and available Connection. The connection's current state is closed.
それでも、私はすべてのリーダーの前に接続を開き、使用後に閉じています。類似性のため; UserControl
のコードの1 つを投稿します。リクエストに応じてさらに投稿します。
protected void Page_Load(object sender, EventArgs e)
{
GetFriend();
}
/// <summary>
/// Get the current friends
/// </summary>
private void GetFriend()
{
try
{
List<FriendRequests> friendRequest = new List<FriendRequests>();
// Get friend added by another
const string strSql = "SELECT [id], [origionalId], [dateFriendAdded] FROM vwMemberFriendStatus WHERE contactId=@member AND accepted=1";
SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text };
sqlComm.Parameters.Add(new SqlParameter("@member", SqlDbType.Int)).Value =
SiteSession.Current.NicknameId;
SqlDataReader rdr = sqlComm.ExecuteReader();
while (rdr.Read())
{
friendRequest.Add(new FriendRequests
{
IsOrigional = false,
FriendId = rdr["id"].ToString(),
FriendName = Member.GetMemberName(rdr["origionalId"].ToString()),
DateAdded = DateTime.Parse(rdr["dateFriendAdded"].ToString()).ToString("dd MMMM yy")
});
}
rptFriend.DataSource = friendRequest;
rptFriend.DataBind();
rdr.Close();
DataConn.Disconnect();
Response.Write("Current - Other <br/>");
}
catch (Exception f)
{
Response.Write("Current / Other: " + f.Message + "<br/>");
}
try
{
List<FriendRequests> friendRequest = new List<FriendRequests>();
// Get friend added by self
const string strSql =
"SELECT [id], [contactId], [dateFriendAdded] FROM vwMemberFriendStatus WHERE origionalId=@member AND accepted=1";
SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text };
sqlComm.Parameters.Add(new SqlParameter("@member", SqlDbType.Int)).Value =
SiteSession.Current.NicknameId;
SqlDataReader rdr = sqlComm.ExecuteReader();
while (rdr.Read())
{
friendRequest.Add(new FriendRequests
{
IsOrigional = true,
FriendId = rdr["id"].ToString(),
FriendName = Member.GetMemberName(rdr["contactId"].ToString()),
DateAdded = DateTime.Parse(rdr["dateFriendAdded"].ToString()).ToString("dd MMMM yy")
});
}
rptFriend.DataSource = friendRequest;
rptFriend.DataBind();
rdr.Close();
DataConn.Disconnect();
Response.Write("Current - Self <br/>");
}
catch (Exception f)
{
Response.Write("Current / Self: " + f.Message + "<br/>");
}
}