0
各製品の1つのページに2つのリンクボタンがあります.1つはその製品を削除し、もう1つはクエリ文字列で他のページにリダイレクトしてその製品を編集します。クエリーストリングで値をnullにすることはできません
hereprotected void dlMusic_ItemCommand(object source, DataListCommandEventArgs e)
{
int id = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "EditItem")
{
Response.Redirect("~/Admin/EditMusic.aspx?id=" + id);
}
else if (e.CommandName == "DeleteItem")
{
SqlCommand cmd = new SqlCommand("", Connection);
cmd.CommandText = "DELETE FROM MusicTable WHERE [email protected]";
cmd.Parameters.AddWithValue("@id", id);
Connection.Open();
cmd.ExecuteNonQuery();
Connection.Close();
LoadData();
}
}
削除ボタンは正常に機能しましたが、編集時に問題があります。
protected void Page_Load(object sender, EventArgs e)
{
int id = int.Parse(Request.QueryString["id"]);
SqlDataAdapter da = new SqlDataAdapter("", Connection);
DataTable dt = new DataTable();
da.SelectCommand.CommandText = "SELECT * FROM MusicTable WHERE [email protected]";
da.SelectCommand.Parameters.AddWithValue("@id", id);
da.Fill(dt);
string name = dt.Rows[0]["MusicName"].ToString();
string signame = dt.Rows[0]["SingerName"].ToString();
string prodname = dt.Rows[0]["ProducerName"].ToString();
string albname = dt.Rows[0]["AlbumeName"].ToString();
string des = dt.Rows[0]["Description"].ToString();
string cover = dt.Rows[0]["Cover"].ToString();
txtMusicName.Text = name;
txtSingerName.Text = signame;
txtProducerName.Text = prodname;
txtAlbumeName.Text = albname;
coverImg.ImageUrl = "~/images/" + cover;
txtDes.InnerText = des;
}
クエリ文字列によって要求され、エラーが来るまで、それが正しく動作するには、
追加情報です:値がnullにすることはできません。
あなたのコメントから、事前
はどの行でエラーが発生していますか?また、編集ページに切り替えるときに正しいURL(クエリ文字列が入力されている)が表示されていますか? –
int id = int.parse(request.querystring ["id"]); – ramadoor