C# 多选择行datagridview并插入到表中

C# 多选择行datagridview并插入到表中,c#,winforms,linq-to-sql,datagridview,C#,Winforms,Linq To Sql,Datagridview,我有一个datagridvie,它使用以下命令填充: private void txtStreet_Leave(object sender, EventArgs e) { DataClasses1DataContext db = new DataClasses1DataContext(); var groups = (from c in db.GetTable<locality>()

我有一个datagridvie,它使用以下命令填充:

        private void txtStreet_Leave(object sender, EventArgs e)
    {
        DataClasses1DataContext db = new DataClasses1DataContext();


        var groups = (from c in db.GetTable<locality>()
                      where c.Number.Contains(txtNum.Text)
                      && c.street.Contains(txtStreet.Text)
                      select new { c.Number, c.street, c.LienNumber, c.LienType, c.Amount  } );

        dataGridView1.DataSource = groups;
    }
private void txtStreet\u Leave(对象发送方,事件参数e)
{
DataClasses1DataContext db=新DataClasses1DataContext();
var groups=(来自db.GetTable()中的c)
其中c.Number.Contains(txtNum.Text)
&&c.street.Contains(txtStreet.Text)
选择新的{c.编号、c.街道、c.留置编号、c.留置类型、c.金额});
dataGridView1.DataSource=组;
}
然后,我需要能够多选择符合我的条件的记录,然后将它们添加到表中。我已经开始用下面的代码来做了。我的问题是从所选行中提取值,然后用这些行更新正确的表。使用列表是错误的路线吗

    public void btnAddLocs_Click(object sender, EventArgs e)
    {
        List<DataGridViewRow> rowCollection = new List<DataGridViewRow>();

        foreach (DataGridViewRow row in dataGridView1.SelectedRows)
        {
            DataClasses1DataContext db = new DataClasses1DataContext();

            MuniLien newlien = new MuniLien();
            newlien.CaseNumberKey = _owner.caseNumberKeyTextBox.Text;
            newlien.LienAmt = 
            newlien.LienDate = 
            newlien.LienReason = 
            newlien.LienNumber = 
            db.MuniLiens.InsertOnSubmit(newlien);
            db.SubmitChanges();
        }
    }
public void btnAddLocs\u单击(对象发送者,事件参数e)
{
List rowCollection=新列表();
foreach(dataGridView1.SelectedRows中的DataGridViewRow行)
{
DataClasses1DataContext db=新DataClasses1DataContext();
MuniLien newlien=新MuniLien();
newlien.CaseNumberKey=\u owner.casenumberkytextbox.Text;
newlien.LienAmt=
newlien.LienDate=
newlien.LienReason=
newlien.LienNumber=
db.MuniLiens.InsertOnSubmit(纽利安);
db.SubmitChanges();
}
}

我认为使用DataGridRowCollection是一种更好的方法(DataGrid.Rows属性就是这种类型)

因此,只需将DataGridRow添加到行列表中,这就是全部内容,并且完全支持foreach。 结账
希望这有帮助

我想这可能会持续几个小时。你现在应该去睡觉或者做些别的事情,几个小时后再回来。我如何得到每一行的值。例如newlien.LienAmt=(string)myRow[0]。单元格[“Amount”]。值;这是一个问题,因为我不知道那一刻正在循环通过哪一行。我该如何处理呢?您可以得到如下值:foreach(dataGridRowCollection中的DataGridViewRow行){(string)row.Cells[“Amount”].Value}或者更简单的foreach(dataGridView.Rows中的dataGridRow行){Console.WriteLine(row.Cells[“Amount”].Value.ToString())或者如果您想使用for循环:for(int i=0;ior如果您想循环遍历所有选定的行:for(int i=0;iAh)我知道我做错了什么。非常感谢,它工作得非常好!