在datagridview中删除字段时更新数据库

本文关键字:更新 数据库 字段 删除 datagridview | 更新日期: 2023-09-27 18:08:13

我有一个使用代码添加表数据的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)
        {

        }
    }
}

我已经尝试了许多不同的方法,我卡住了,我真的需要一些帮助来指导我通过这一点,所以如果有人可以帮助,请做。

在datagridview中删除字段时更新数据库

在进一步审查后,它看起来像你在StackOverflow上问了很多关于WinForms基本操作的问题。我给你的建议是寻找一些材料来学习如何用你选择的语言和框架编程,并试着理解你正在写的代码是做什么的。

当你要求每个人都为你写代码时,你只是把问题复杂化了——你不完全理解你的代码在做什么,而且很难修复错误。在我的过去,我也这样做过,花了10倍的时间试图让别人的代码为我工作,而不是学习为自己写代码。

我知道你最初的想法是,你最终会通过让别人写你的代码来弄清楚,但根据我的经验,情况并非如此,这样你什么也学不到。

试试这个,

首先,您需要知道需要删除哪一行(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();

你的排序。

希望这能帮助你和我正确阅读你的问题