2017-08-05 26 views
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にすることはできません。

あなたのコメントから、事前

+0

はどの行でエラーが発生していますか?また、編集ページに切り替えるときに正しいURL(クエリ文字列が入力されている)が表示されていますか? –

+0

int id = int.parse(request.querystring ["id"]); – ramadoor

答えて

0

のおかげで、フィールド「ID」は、あなたののQueryStringの一部ではないことは明らかです。
ブラウザで編集ページがロードされたときにURLを確認してください(ブレークポイントを入力してブラウザウィンドウに切り替えると表示されます)。
URLが正しいと思われる場合は、読み込み中のブラウザのスクリーンショットを投稿してください。
もう一つのアイデア任意の他で(かなり絶望的な、しかし)、変更 "ID"(すなわち "MYID")は

​​

int id = int.Parse(Request.QueryString["myid"]); 
関連する問題