2016-04-22 8 views
-1

グリッドビューに表示されているすべてのデータを削除するWebページにボタンを実装したいと思います。すべてのデータを一度にボタンで削除する簡単な方法はありますか?グリッドビューからすべてのデータを削除

+0

あなたが掲示したコードの量はそれほど重要ではありませんが、VS2015は 'Framework'バージョンではなく' IDE'です。 –

+0

私はVisual Studio 2015タグを削除しました。これは、VSに固有ではなく、この問題がコーディング関連であるためです。 –

+0

コードが必要です。それを比較するコードを投稿しないと、より簡単な方法があるかどうかをどのように知ることができますか? – Matthew

答えて

1

非常に簡単です。グリッドビューの各行を繰り返し実行し、プライマリキーの値を取得してから、SQLクエリを使用してデータベースからレコードを削除します。 ここのコードはあなたを助けることができます。私はNorthWindサンプルデータベースを使用しています。

void loaddata() 
    { 
     SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDatabaseConnectionString"].ConnectionString); 
     SqlCommand command = new SqlCommand(); 
     connection.Open(); 
     try 
     { 
      command = connection.CreateCommand(); 
      command.CommandText = "SELECT * FROM Employees"; 
      SqlDataAdapter adapter = new SqlDataAdapter(command); 
      DataTable datatable = new DataTable(); 
      adapter.Fill(datatable); 
      GridView1.DataSource = datatable; 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
     finally 
     { 
      if (connection.State == ConnectionState.Open) 
      { 
       connection.Close(); 
      } 
     } 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     int employee_id; 

     SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDatabaseConnectionString"].ConnectionString); 
     SqlCommand command = new SqlCommand(); 
     connection.Open(); 
     try 
     { 
      command = connection.CreateCommand(); 
      for (int i = 0; i < GridView1.Rows.Count; i++) 
      { 
       employee_id = Convert.ToInt32(GridView1.Rows[i].Cells[0].Text); 
       command.CommandText = "DELETE FROM Employees WHERE EmployeeID = '" + employee_id + "'"; 
       command.ExecuteNonQuery(); 
      } 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
     finally 
     { 
      if (connection.State == ConnectionState.Open) 
      { 
       connection.Close(); 
      } 
     } 

     loaddata(); 
    } 
0

いつでもデータソースをnullに設定できます。

someGridView.DataSource = null; 
someGridView.DataBind(); 
+0

ボタンをクリックしたときに削除したいのですが、サーバーベースのデータベースであるデータベースからもデータを削除する必要があります。 – Som

+0

@Som - また、バックエンドのデータを削除することは、あなたが求めているのとは全く異なる質問です... –

0

私が唯一の問題のように曖昧にすることができ、私がコメントを残すことはできませんなぜ私はまだ非常に理解していないが、私は答えを残すことができます...

とにかく、私たちは「ドンデータベースにアクセスするために使用しているもの、またはGridViewをバックアップしているモデルを知っています。

あなたのGridViewをバックアップ次のクラス(データの種類、あなたのGridViewを使用して、データソースに設定したもので構成されて)持っているのは、例えばとしましょう:あなたが持っているだろうあなたのASPXで

public class MyData 
{ 
    public int ID { get; set; } 
    public string SomeData { get; set; } 
} 

を次

<asp:GridView ID="GridView" runat="server"></asp:GridView> 
<asp:Button ID="DeleteButton" runat="server" OnClick="DeleteButton_Click"/> 

そして、あなたのコードビハインドで、あなたはこのような何かをしたい...

protected void DeleteButton_Click(object sender, EventArgs e) 
{ 
    var gridViewItemsToDelete = (IEnumerable<MyData>)GridView.DataSource; 

    foreach (var idToDelete in gridViewItemsToDelete.Select(r=>r.ID)) 
    { 
     // Delete the item by its ID 
     // I don't know what you're using to access your database 
    } 

    // Save Changes if you didn't in the foreach loop... 
} 
関連する問題