2013-04-09 51 views
2

我有一個使用代碼添加表數據的datagridview,我想刪除一行數據並在數據庫表中更新它。 我該怎麼做?有小費嗎?在datagridview中刪除一個字段時更新數據庫?

的代碼如下介紹:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Data.Sql; 
using System.Data.SqlClient; 


namespace project 
{ 
    public partial class frmTestPrint : Form 
    { 
     //with code 
     SqlConnection cn = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=F:etc"); 
     SqlDataAdapter da; 
     DataTable dt = new DataTable(); 


     public frmTestPrint() 
     { 
      InitializeComponent(); 
     } 

     //with code 
     private void BindDataGridView2() 
     { 
      string command = "select * from booking"; 
      da = new SqlDataAdapter(command,cn); 
      da.Fill(dt); 
      dataGridView2.DataSource = dt; 


     } 

     private void frmTestPrint_Load(object sender, EventArgs e) 
     { 

      //with code 
      BindDataGridView2(); 
     } 


     private void btnDelete_Click(object sender, EventArgs e) 
     { 


     } 
    } 
} 

我已經嘗試了許多不同的方式和我堅持,我真的需要一些幫助來指導我通過這個所以如果有人可以幫助請不要。

+0

http://stackoverflow.com/questions/2084346/delete-selected-row-from-datagridview-and-update-db?rq=1 – 2013-04-09 18:59:46

+0

@ kadumel我已經嘗試了鏈接,還有很多其他的鏈接,它沒有幫助,數據只是不從數據庫中刪除! – bandaa 2013-04-09 19:01:45

+0

我不想讓你灰心,但看起來你正在使用直接的SQL語句,如果你想使用它,那很好。如果您要從數據庫中刪除數據,那麼您需要在該記錄上運行SQL DELETE語句,如果Google如何執行此操作,您會發現幾個示例。請記住,答:您必須非常小心從數據庫中刪除數據,特別是使用SQL語句(可以快速解決問題)和B:如何處理CRUD功能還有很多其他選項。如果我是你,我會Google'使用WinForms實體框架。 – 2013-04-09 19:23:11

回答

1

經過進一步的檢查,看起來您在StackOverflow上詢問了很多關於WinForms中基本操作的問題。我對你的建議是找出材料,學習如何用你選擇的語言和框架進行編程,並試圖理解你寫的代碼在做什麼。

當你要求所有人爲你編寫代碼時,你只是複雜的問題 - 你不完全理解你的代碼在做什麼,並且很難修復錯誤。在過去,我也這樣做了,花了10倍時間試圖讓其他人的代碼爲我工作,而不是爲自己寫作。

我知道你最初的想法是,你最終會通過要求他人編寫你的代碼來弄明白,但根據我的經驗,情況並非如此,你也沒有以這種方式學習任何東西。

+0

+1。我普遍同意這裏提出的觀點。作爲一個方面說明,如果只有10倍的時間讓其他人的代碼工作,那麼你很幸運。有時我需要100倍才能做到這一點。 :) – Neolisk 2013-04-09 20:03:31

+0

我明白你的意思,但是一直問的問題都是關於同樣的問題,讓這個該死的刪除按鈕工作!大聲笑。不好意思接受你的建議,並開始尋求其他來源,但我是新人,只是想完成這個任務,我正在爲我的朋友做一個程序。 – bandaa 2013-04-09 20:50:19

+0

我看到其他問題,例如如何從數據庫查詢數據,如何將數據加載到DataGridView等等,這使我相信您沒有使用任何其他資源。我聽到你想要完成它,但在這一點上很難幫助你。看看這個鏈接是否給你任何方向http://www.codeproject.com/Articles/1155/Simple-ADO-NET-Database-Read-Insert-Update-and-Del – 2013-04-09 20:55:41

0

試試這個,

1,你需要知道你需要刪除哪一行(ID)。 因此請嘗試:

string myID = dataGridView2.CurrentRow.Cells["ID"].Value 

接下來,您需要更新數據庫。現在你可以做到這一點,你有使用字符串命令,但我不會這樣做,我會使用存儲過程。 所以在你的SQL:

CREATE PROCEDURE myDeleteQuery 
@paramID 
AS 
DELETE * FROM booking WHERE booking.ID = @param 

非常簡單刪除查詢,不知道你的表結構我只是假設。

你想要做的最後一件事就是修復它,所以試試這個。

using (SqlConnection AutoConn = new SqlConnection(cn)) 
{ 
    AutoConn.Open(); 
    using (SqlCommand InfoCommand = new SqlCommand()) 
    { 
     using (SqlDataAdapter infoAdapter = new SqlDataAdapter(InfoCommand)) 
     { 
      InfoCommand.Connection = AutoConn; 
      InfoCommand.CommandType = CommandType.StoredProcedure; 
      InfoCommand.CommandText = "myDeleteQuery"; 
      InfoCommand.Parameters.AddWithValue("@paramID", myID); 
      InfoCommand.CommandTimeout = 180; 
      InfoCommand.ExecuteScalar() 
      AutoConn.Close(); 
     } 
    } 
} 

這會更新您的表格。現在你需要做的就是顯示變化,所以只需回憶你的

BindDataGridView2(); 

而你的排序。

希望這可以幫助你和我正確地讀你的問題

相關問題