0

gridviewとSqlDataSourceを使用して、データテーブル情報をgridviewにバインドしています。gridview更新イベントで、次のコードがあります。

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
  {
                    var ID = (int)GridView1.DataKeys[e.RowIndex]["No"];
                    string costring = "the conn string";
                    string query = "UPDATE mytable SET Age = @Age WHERE No = " + ID;
                    using (SqlConnection dataConnection = new SqlConnection(costring))
                    {
                        using (SqlCommand com = new SqlCommand(query, dataConnection))
                        {
                            dataConnection.Open();
                            int valueID = 18;
                            com.Parameters.AddWithValue("Age", valueID);
                            com.ExecuteNonQuery();
                            GridView1.DataSource = SqlDataSource1;
                            GridView1.DataBind();
                            dataConnection.Close();
                        }
                    }
                 }
  • 更新イベントをクリックすると、「DataSourceとDataSourceIDの両方が「GridView1」で定義されています。1つの定義を削除してください。」というメッセージが表示されます。ここで"GridView1.DataBind();"!しかし、Webページを更新すると、コードは機能しましたが、常にこのエラーが発生します。
  • グーグルで検索したところ、両方を使用できないことがわかりました。しかし、グリッドビューで情報を確認する必要があり、sqldatasourceバインディングを削除できません。また、コードを機能させる必要があります。
  • DataGridviewID=nullを試しました。エラーは発生しませんが、何も変更されていません。コードは実行されません。何も起こりません。
4

1 に答える 1

3

このステートメントを発行する場合、本当にデータソースを再度割り当てる必要がありますか?

  GridView1.DataSource = SqlDataSource1;
  GridView1.DataBind();

と使用

  SqlDataSource1.Update();

データソースの使用例があります。これがデータソースの例に役立つことを願っています。

于 2012-04-18T11:25:03.230 に答える