m0_74786779 2024-06-25 09:24 采纳率: 62.5%
浏览 1
已结题

visualstudio中DataGridView已经绑定了sqlserver数据源之后如何使用button按钮实现删除功能

visualstudio中DataGridView已经绑定了sqlserver数据源之后如何使用button按钮实现删除功能

private void button3_Click(object sender, EventArgs e)
{
    //查询全部
    string connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=warehousing;Integrated Security=true";
    string sql = "SELECT equipno AS 设备号, exisitinv AS 采购数量, pnumber AS 总库存, supplier AS 供应商, price AS 价格, planptime AS 采购时间 FROM planpinfo";

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        using (SqlDataAdapter da = new SqlDataAdapter(sql, conn))
        {
            DataSet ds = new DataSet();
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }
    }

}


private void button1_Click(object sender, EventArgs e)
{
    //删除

}
  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-25 09:24
    关注

    引自免费微信小程序:皆我百晓生

    要使用DataGridView进行删除操作,您需要首先从数据库中获取所有数据并将其显示在DataGridView中。然后,当用户点击"删除"按钮时,您可以调用一个方法来执行删除操作。

    以下是根据您的需求修改后的代码示例:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    
    namespace WarehousingManagementSystem
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 创建连接字符串
                string connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=warehousing;Integrated Security=true";
    
                // 获取所有设备信息
                string sql = "SELECT equipno AS 设备号, exisitinv AS 采购数量, pnumber AS 总库存, supplier AS 供应商, price AS 价格, planptime AS 采购时间 FROM planpinfo";
                SqlConnection connection = new SqlConnection(connectionString);
    
                try
                {
                    // 打开数据库连接
                    connection.Open();
    
                    // 使用DataAdapter将SQL查询结果转换为DataSet
                    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
                    DataSet dataSet = new DataSet();
                    adapter.Fill(dataSet);
    
                    // 将数据绑定到DataGridView中
                    dataGridView1.DataSource = dataSet.Tables[0];
    
                    // 当用户点击"删除"按钮时,执行删除操作
                    Button button1 = new Button();
                    button1.Location = new Point(20, 20); // 设置按钮位置
                    button1.Text = "删除"; // 设置按钮文本
                    button1.Click += new EventHandler(button1_Click); // 添加事件处理程序
    
                    // 在此处添加更多控件(例如:按钮、输入框等)以完成整个应用程序
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: " + ex.Message);
                }
                finally
                {
                    // 关闭数据库连接
                    connection.Close();
                }
            }
    
            private static void button1_Click(object sender, EventArgs e)
            {
                // 删除记录
                int selectedRowIndex = dataGridView1.SelectedRows.Count > 0 ? dataGridView1.SelectedRows[0].Index : -1;
                if (selectedRowIndex >= 0 && selectedRowIndex < dataGridView1.Rows.Count)
                {
                    // 根据实际情况编写删除记录的具体逻辑
                    // 示例:执行DELETE语句,更新数据库中的状态字段
                    // exampleDeleteRecord(selectedRowIndex);
                }
            }
    
            // 假设exampleDeleteRecord是一个实际的功能实现函数
            public static void exampleDeleteRecord(int rowIndex)
            {
                // 在这里编写具体的数据删除逻辑
                // 示例:使用SqlCommand对象执行DELETE语句
                SqlCommand deleteCommand = new SqlCommand("DELETE FROM planpinfo WHERE equipno=@equipno", connection);
                deleteCommand.Parameters.AddWithValue("@equipno", dataGridView1.Rows[rowIndex].Cells["设备号"].Value.ToString());
                deleteCommand.ExecuteNonQuery();
            }
        }
    }
    

    这个例子展示了如何使用DataGridView进行删除操作,并且提供了一个简单的exampleDeleteRecord方法作为删除记录的实际实现。在实际应用中,您可能需要根据具体的业务需求来调整这个逻辑。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月25日
  • 创建了问题 6月25日

悬赏问题

  • ¥15 C++dll二次开发,C#调用
  • ¥18 c语言期中复习题(求解)
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 求一个十多年前的国产符号计算软件(MMP)+用户手册
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢
  • ¥15 vxworks交叉编译gcc报错error: missing binary operator before token "("
  • ¥15 JSzip压缩文件时如何设置解压缩密码
  • ¥66 nuxtjs3 ,老是报错,内容:我有代码仓库,如何解决?