私は自分のサイトのためのシンプルな/ adminarea /を持っています。この管理領域には、Default.aspx(新しい投稿)、Edit.aspx、およびView.aspxという3つのページがあります。私の.Netフォームはデータベースに正常に更新されません
デフォルトでは、新しいレコードを挿入できます。ビューを使用すると、Readerを使用してデータベーステキストをページに表示できますが、編集は何らかの不明な理由で更新しません。
ASPX
<form id="form1" runat="server">
<DIV style="max-width: 1500px; margin: 0px auto;">
<table>
<tr>
<td>Enter selection text: </td>
<td>
<asp:TextBox ID="TextBox1" TextMode="MultiLine" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<asp:Button ID="Button1" runat="server" Text="Submit" OnServerClick="Button1_Click1" />
<asp:HiddenField ID="postID" runat="server" />
</td>
</tr>
</table>
</DIV>
</form>
当初、私はpostIDはHTMLで生成されたかどうかを疑問でしたが、あなたがソースを表示する場合には、postIDを示しています。
私のC#
public partial class _Default : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(@"Data Source=db652255182.db.1and1.com; Initial Catalog=db652255182; User ID=dbo652255182; Password=290Plots$");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT TOP 1 * From homepageSelection ORDER BY postID DESC");
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = con;
string messageInfo = "";
int postIDVal = 0;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
messageInfo += reader["selectionText"].ToString();
postIDVal = (int)reader["postID"];
}
con.Close();
TextBox1.Text = messageInfo;
postID.Value = postIDVal.ToString();
}
}
protected void Button1_Click1(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("update homepageSelection set [email protected] where [email protected]", con);
cmd.Parameters.AddWithValue("@selectionText", TextBox1.Text);
cmd.Parameters.AddWithValue("@postID", postID.Value);
con.Open();
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
con.Close();
}
}
私は私のテーブル内の1つの列があります:私はすべてのエラーを取得するませを行うselectionText
:homepageSelectionを。
私はSQL Injectionも認識しています(.Netには多くの保護機能が組み込まれていますが)。学習目的のために、私はこれが大丈夫だと信じています。
危険なコンテンツを削除するスクリプトを送信する前に、この問題が重要ではありません。
多くの感謝を。 Submitを押すと保存されますが、それでもデータベースの更新は拒否されます。 –