大家好,我的代码没有错误,但是当我尝试下面的插入语句时,似乎什么也没发生?
不知道它是如何包装文本框还是它的FriendID查询字符串?

    protected void Button1_Click(object sender, EventArgs e)
    {
        string friendid = Request.QueryString["FriendID"];
        string theUserId = Session["UserID"].ToString();
        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=***; User=***; Password=***;"))
        {
            cn.Open();
            using (OdbcCommand cmd = new OdbcCommand("INSERT INTO WallPosting (UserID, Wallpostings, FriendUserID) VALUES (" + friendid + ", '" + TextBox1.Text + "', " + theUserId + ")", cn))
            {
                cmd.ExecuteNonQuery();
            }
        }
        PopulateWallPosts(friendid);
    }
}

最佳答案

您根据字段名称切换了变量,它应该是:

using (OdbcCommand cmd = new OdbcCommand("INSERT INTO WallPosting (UserID, Wallpostings, FriendUserID) VALUES (" + theUserId + ", '" + TextBox1.Text + "', " + friendid  + ")", cn))


新记录已添加,但是是针对错误的用户的,因此您稍后在重新加载帖子时找不到它。

如您所知,已经通过使用Parameters而不是直接将值添加到SQL字符串来处理SQL注入风险。

关于c# - 插入语句不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5529439/

10-12 12:49