iT邦幫忙

0

BindingNavigator上的刪除功能無法刪除資料行

  • 分享至 

  • xImage

麻煩邦友們過目
附影片如下
Yes
我開一個新的FORM來測試
只有拉取BindingNavigator且輸入DataSource
結果測試時刪除資料行顯示上會執行
但是重新執行程式後資料行又復原
也嘗試過直接使用SSMS刪除
直接用QUERY的delete語法直接刪除資料行顯示可以成功
能請有碰過或是了解狀況的邦友幫忙解決問題嗎?

優悠 iT邦新手 3 級 ‧ 2018-05-04 14:43:44 檢舉
你的刪除語法沒有執行成功,程式上的虛擬資料是有被刪除,重開或重讀程式抓資料又抓出來。
sam0407 iT邦大師 1 級 ‧ 2018-05-05 09:29:52 檢舉
貼一下您Delete那段的程式碼出來吧~影片裡也沒看到呀
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-02 05:02:30

因為沒貼程式碼
我猜~
這種情況有可能是因為您的 DataSource 配置為使用臨時資料,
因此刪除的操作不會永久影響資料庫中的資料。

// DeleteItem_Click 方法是當使用者點擊 "刪除" 按鈕時要被呼叫的事件處理器
private void DeleteItem_Click(object sender, EventArgs e)
{
    // 定義一個 SqlCommand 物件,這個物件將用於執行刪除資料行的 SQL 語句
    SqlCommand deleteCommand = new SqlCommand("DELETE FROM YourTable WHERE YourPrimaryKeyColumn = @YourPrimaryKeyValue");
    
    // 向 SqlCommand 物件的 Parameters 集合中添加一個參數,該參數將在之後的刪除操作中使用
    deleteCommand.Parameters.Add("@YourPrimaryKeyValue", SqlDbType.Int, 4, "YourPrimaryKeyColumn");
    
    // 定義一個 SqlDataAdapter 物件,該物件將用於與數據庫通信以實現刪除操作
    SqlDataAdapter dataAdapter = new SqlDataAdapter();
    
    // 將剛才定義的 SqlCommand 物件設置為 SqlDataAdapter 物件的 DeleteCommand 屬性
    dataAdapter.DeleteCommand = deleteCommand;
    
    // 調用 SqlDataAdapter 的 Update 方法,這將導致對數據庫進行實際的刪除操作
    // 並且將更改提交到數據庫中
    // (DataTable)bindingSource1.DataSource 是將 BindingSource 的 DataSource 屬性强制轉換為 DataTable 物件
    dataAdapter.Update((DataTable)bindingSource1.DataSource);
}

我要發表回答

立即登入回答