c# - 单击按钮后如何在数据网格中选中复选框的情况下传输数据? C# 和 SQL Server

标签 c# sql-server winforms checkbox datagridview

我有 2 个表,即 Pending.dboApproved.dbo。我用过tabcontrol。第一个选项卡包含 “Pending datagridview” 以及 checkboxbtnApprove。名为“Approved”的第二个选项卡只是一个只读 datagridview。

我想要的是,当我点击btnApprove时,“Pending datagridview”checkbox选中的数据将传输到表格Approved.dbo

这可能吗?到目前为止,这是我的代码:

语言:c#

private void btnApproved_Click(object sender, EventArgs e)
    {
        //List<DataGridViewRow> selectedRows = (from row in dataGridView1.Rows.Cast<DataGridViewRow>() where Convert.ToBoolean(row.Cells["checkBoxColumn"].Value) == true select row).ToList();
        foreach (DataGridView row in dataGridView1.Rows)
        {
            using (var connect = sqlcon.getConnection())
            {
                using (SqlCommand cmd = new SqlCommand("COMMAND TO TRANSFER DATA??????"))
                {

                }
            }
        }
    }
PS。抱歉我的英语和解释不好。谢谢!

最佳答案

应该这样做:-

using (SqlConnection conn = new SqlConnection(ConnString))
{
    using (SqlCommand comm = new SqlCommand())
    {
        comm.Connection = conn;
        conn.Open();

        for(int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            StrQuery = @"INSERT INTO tableName VALUES (" 
                + pendingdataGridView.Rows[i].Cells["ColumnName"].Value +", " 
                + pendingdataGridView.Rows[i].Cells["ColumnName"].Value +");";
            comm.CommandText = StrQuery;
            comm.ExecuteNonQuery();
        }
    }
}

如果您只想将选定的行传输到数据库,则将 for 循环部分替换为

for(int i = 0; i < pendingdataGridView.Rows.Count; i++)
{
    if(!pendingdataGridView.Rows.Selected[i])
        Continue;

    StrQuery= @"INSERT INTO tableName VALUES (" 
                + pendingdataGridView.Rows[i].Cells["ColumnName"].Value +", " 
                + pendingdataGridView.Rows[i].Cells["ColumnName"].Value +");";
    comm.CommandText = StrQuery;
    comm.ExecuteNonQuery();
}

然后将值从数据库绑定(bind)到Approvedgridview

SqlDataAdapter dataAdapter = new SqlDataAdapter(selectCommand, connectionString);

SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

// Populate a new data table and bind it to the BindingSource.
DataTable table = new DataTable();
dataAdapter.Fill(table);
Approvedgridview.DataSource = table;
  • selectCommand:从数据库检索值的查询

  • connectionString :您的数据库连接字符串

关于c# - 单击按钮后如何在数据网格中选中复选框的情况下传输数据? C# 和 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32263300/

相关文章:

SQL:设置 IDENTITY_INSERT ON 会禁止更新表的身份表吗?

winforms - 鼠标悬停列表框项目上的 POWERSHELL 工具提示

c++ - 减少实时绘图数据的有效方法

c# - foreach 中的 Linq 查询

SQL 检查时间是否出现在某些时间段之间

javascript - asp.net mvc 中的对象数组数据始终为 null

sql - 如何查找影响特定列的存储过程列表?

c# - 绑定(bind)到字典的 DataGridView

c# - 条件编译和框架目标

c# - SQL 命令问题 (C# Winforms)