簡體   English   中英

在datagridview中刪除字段時更新數據庫?

[英]Update the database when a field is deleted in 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)
        {


        }
    }
}

我嘗試了許多不同的方法,並陷入困境,我真的需要一些幫助來指導我進行此操作,因此,如果有人可以提供幫助,請這樣做。

經過進一步的審查,您似乎在StackOverflow上問了很多有關WinForms中基本操作的問題。 我對您的建議是查找材料,以學習如何使用所選的任何語言和框架進行編程,並嘗試了解所編寫的代碼在做什么。

當您要求所有人為您編寫代碼時,您會遇到的麻煩是-您不完全了解您的代碼在做什么,並且很難修復錯誤。 在過去,我也這樣做,並且花了10倍的時間來嘗試讓別人的代碼為我工作,而不是學習自己編寫代碼。

我知道您最初的想法是,您最終將要求其他人編寫您的代碼來弄清楚這一點,但是根據我的經驗,事實並非如此,您不會以這種方式學習任何東西。

嘗試這個,

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();

和你排序。

希望這對您有幫助,我也能正確閱讀您的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM