通过组合框从数据库中删除行

本文关键字:数据库 删除行 组合 | 更新日期: 2023-09-27 17:49:26

我有一个组合框,它正在查看我的数据库,并向我显示用户的名称,我还想看看dID除此之外,这个任务我发现很难实现。我有两个表,所以我假设我必须重复这个SQL语句。请查看此代码!

总而言之,我想要实现的只是从数据库中删除用户!成员的个人信息表_1和成员的支付金额和年份表_2的信息!一个delete命令删除table_1 &table_2。

欢迎任何其他方法或想法!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CemiyetAidatSistem
{
    public partial class DeleteUser : Form
    {
        String conStr ="My connection string";
        public UyeSil()
        {
            InitializeComponent();
        }
        SqlDataAdapter da;
        DataSet ds = new DataSet();
        private void UserDelete_Load(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(conStr);
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "SELECT FullName FROM Members";
            da = new SqlDataAdapter(cmd);
            da.Fill(ds, "Members");
            cmbUyeSil.DataSource = ds.Tables["Members"];
            cmbUyeSil.DisplayMember = "DistinctID";
            cmbUyeSil.ValueMember = "FullName";
        }
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(conStr);
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "DELETE FROM Members WHERE ID = '" + cmbUyeSil.SelectedValue + "'";
            da = new SqlDataAdapter(cmd);
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            MessageBox.Show(" Member with dID '"" + cmbUyeSil.SelectedValue + "'"is deleted");
        }
        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

通过组合框从数据库中删除行

如果您打开了级联删除,那么当您删除用户时,这将导致表2中的行也被删除

好的,belxandre是完全正确的;你不应该删除这些记录。你应该有能力标记他们是非活动的。话虽如此,您可以创建一个SqlCommand来执行删除操作,向其添加必要的参数,然后在DataAdapter上调用它:

SqlCommand delcomm = new SqlCommand();
delcomm.CommandType = CommandType.StoredProcedure; //I'd do it with an sp, up to you
delcomm.CommandText = "sp_delUser";
SqlParameter delParam = new SqlParameter("@dID", SqlDbType.Int);//I'm assuming this is the column you need and the right datatype
delcomm.Parameters.Add(delParam);
da.DeleteCommand = delcomm;
da.AcceptChangesDuringUpdate = false;
da.Update(UserTable);//you'll need to set up a DataTable with the right data structure
UserTable.AcceptChanges();

这是我完全没有想到的;你可能需要稍微摆弄一下,但如果我理解你的问题的话,这是你通常需要做的。按照建议对表进行级联删除也是一个好主意。