G G*_* Gr 0 html c# mysql sql asp.net
我试图实现插入语句并使用我的函数在页面加载中返回.不知道我怎么能插入同时绘制我插入到mysql中的所有内容一次又一次出来?
码:
public partial class UserProfileWall : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string theUserId = Session["UserID"].ToString();
using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=user_name; Password=password_here;"))
{
cn.Open();
using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + theUserId + " ORDER BY idWallPosting DESC", cn))
using (OdbcDataReader reader = cmd.ExecuteReader())
{
var divHtml = new System.Text.StringBuilder();
while (reader.Read())
{
divHtml.Append("<div id=test>");
divHtml.Append(String.Format("{0}", reader.GetString(0)));
divHtml.Append("</div>");
}
test1.InnerHtml = divHtml.ToString();
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string theUserId = Session["UserID"].ToString();
OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=user_name; Password=password_here;");
cn.Open();
OdbcCommand cmd = new OdbcCommand("INSERT INTO WallPosting (UserID, Wallpostings) VALUES (" + theUserId + ", '" + TextBox1.Text + "')", cn);
cmd.ExecuteNonQuery();
// {
// using (OdbcCommand md = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + theUserId + "", cn))
// using (OdbcDataReader reader = cmd.ExecuteReader())
// {
// var divHtml = new System.Text.StringBuilder();
// while (reader.Read())
// {
// divHtml.Append("<div id=test>");
// divHtml.Append(String.Format("{0}", reader.GetString(0)));
// divHtml.Append("</div>");
// }
// test1.InnerHtml = divHtml.ToString();
// }
// }
//}
}
Run Code Online (Sandbox Code Playgroud)
我确实尝试了注释掉的行,但我有多个插入,没有在页面上重新加载.插入以获取页面加载功能后有一个简单的方法吗?
首先,将使用墙贴填充元素的代码移动到单独的函数:
private void PopulateWallPosts(string userId)
{
using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=user_name; Password=password_here;"))
{
cn.Open();
using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + userId) + " ORDER BY idWallPosting DESC", cn))
{
using (OdbcDataReader reader = cmd.ExecuteReader())
{
var divHtml = new System.Text.StringBuilder();
while (reader.Read())
{
divHtml.Append("<div id=test>");
divHtml.Append(String.Format("{0}", reader.GetString(0)));
divHtml.Append("</div>");
}
test1.InnerHtml = divHtml.ToString();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在在Page_Load中调用它:
protected void Page_Load(object sender, EventArgs e)
{
string theUserId = Session["UserID"].ToString();
PopulateWallPosts(theUserId);
}
Run Code Online (Sandbox Code Playgroud)
最后在插入新值后调用它:
protected void Button1_Click(object sender, EventArgs e)
{
string theUserId = Session["UserID"].ToString();
using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=user_name; Password=password_here;"))
{
cn.Open();
using (OdbcCommand cmd = new OdbcCommand("INSERT INTO WallPosting (UserID, Wallpostings) VALUES (" + theUserId + ", '" + TextBox1.Text + "')", cn))
{
cmd.ExecuteNonQuery();
}
}
PopulateWallPosts(theUserId);
}
Run Code Online (Sandbox Code Playgroud)
您的注释代码不起作用,因为您INSERT INTO再次执行命令而不是SELECT命令.
无论如何,您最好了解SQL注入并更改代码以使用Parameters而不是直接将用户ID添加到SQL字符串.
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |