繁体   English   中英

单击按钮后,如何使用数据网格中的选定复选框传输数据? C# 和 SQL Server

[英]How to transfer data with selected checkbox in datagrid after button click? C# and SQL Server

我有 2 个表,即Pending.dboApproved.dbo 我用过tabcontrol。 第一个选项卡包含带有checkboxbtnApprove "Pending datagridview" 名为"Approved"的第二个选项卡只是一个只读数据网格视图。

我想要的是,当我单击btnApprove"Pending datagridview" checkbox "Pending datagridview"将传输到表Approved.dbo

是否可以? 截至目前,这是我的代码:

language: 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??????"))
                {

                }
            }
        }
    }

附注。 对不起,我的英语和解释不好。 谢谢!

应该这样做: -

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

然后将值从数据库绑定到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 : 您的数据库连接字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM