0

ASP.Net でフォーラムを構築していますが、小さな問題があります。

トピックを作成し、それに投稿を書き込むことができるユーザーが 1 人いますが、別のユーザーがログインすると、投稿がデータベースに挿入されません。それがすることを返していますが、何も挿入しません。元のユーザーはログインして投稿できますが、他のユーザーはできません。

これは背後にある私のコードです

    protected void addPostBtn_Click(object sender, EventArgs e)
{        
    //Define ADO.NET objects.
    string insertSQL;
    string topic = Request.QueryString["topicid"].ToString();
    insertSQL = "INSERT INTO Posts (TopicID, PostBody, PUserID)"
        + "VALUES (@Topic, @NewPostText, @PUserID)";

    SqlConnection con = new SqlConnection(connectionString);
    SqlCommand cmd = new SqlCommand(insertSQL, con);

    // Try to open the database and execute the update
    int added = 0;
    try
    {
        cmd.Parameters.AddWithValue("@Topic", topic);
        cmd.Parameters.AddWithValue("@NewPostText", newPostText.InnerText);
        cmd.Parameters.AddWithValue("@PUserID", Session["User_ID"]);
        con.Open();
        added = cmd.ExecuteNonQuery();
        lblResults.Text = "Your post has been added";
    }
    catch (Exception err)
    {
        lblResults.Text = "Error inserting record. " + err.Message;
    }
    finally
    {
        con.Close();
    }
    if (added > 0)
    {
        this.BindRepeater();
    }
}

エラーはまったく発生しません。うまく提出されたと書かれていますが、元の投稿者がそうしない限り、データベースにはありません。

編集:

それが私の見方に関係していることに気づきました。これは、それが読んでいる私の現在の見解です

    SELECT dbo.Posts.PostBody, dbo.Posts.PostDate, dbo.Posts.PostID, dbo.[User].username, dbo.Topic.TopicID
FROM  dbo.Topic RIGHT OUTER JOIN
dbo.Posts ON dbo.Topic.TopicID = dbo.Posts.TopicID LEFT OUTER JOIN
dbo.[User] ON dbo.Topic.TUserID = dbo.[User].UserID AND dbo.Posts.PUserID = dbo.[User].UserID

しかし、他のユーザー名に対しては現在NULLを返しています

4

1 に答える 1

0

ビューは次のようにする必要があります

SELECT     dbo.Posts.PostBody, dbo.Posts.PostDate, dbo.Posts.PostID, dbo.[User].username, dbo.Topic.TopicID
FROM         dbo.Topic LEFT OUTER JOIN
                  dbo.Posts ON dbo.Topic.TopicID = dbo.Posts.TopicID LEFT OUTER JOIN
                  dbo.[User] ON dbo.Posts.PUserID = dbo.[User].UserID
于 2012-05-28T03:24:26.713 に答える