【问题标题】:How to insert selected rows value of Gridview into Database in .net如何将Gridview的选定行值插入.net中的数据库
【发布时间】:2011-02-10 11:03:14
【问题描述】:

我正在.Net 中开发 Windows 窗体应用程序,我想将 Gridview 的选定行值插入数据库。我的 GridView 的第一列是复选框,当用户从 gridview 中选中一个或多个复选框时,我想将相应行的值插入到数据库中。

在 Web 应用程序中,我使用 GridView 的 DataKeyNames 属性完成了此操作。想知道如何在 Windows 窗体应用程序中执行此操作。我正在使用 Visual Studio 2005。

【问题讨论】:

    标签: c# .net asp.net .net-3.5


    【解决方案1】:

    仍然不确定您在寻找什么,但以下内容可能至少会有所帮助。

    foreach(DataGridViewRow row in dataGridView1.Rows)
    {
        DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)row.Cells[0];
        if(cell.Value)
        {
            InsertRow(row);
        }
    }
    

    代码假定第一列的类型为 DataGridViewCheckBoxCell。

    InsertRow 从行中取出值并将这些值用作插入语句的 SqlParameters,然后执行插入,如下所示:

    http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx

    假设您使用的是 SQL Server,否则您需要其他类。

    【讨论】:

    • 我认为我的第一个答案是错误的,我现在已将其修改为希望有所帮助的内容。
    • 抱歉,今天好像有点糊涂了。虽然想法是一样的。
    【解决方案2】:

    我回答了一个与你的问题非常接近的问题,也许对你有帮助:

    How to add gridview rows to a datatable?

    您选择行的答案:

        for (int i = 0; i < grdList.Rows.Count; i++)
        {
            string key = grdList.DataKeys[i].Value.ToString();
            if (((CheckBox)grdList.Rows[i].FindControl("chkSelect")).Checked)
                foreach (TargetObject obj in objects)
                    if (obj.Key == key)
                    {
                        //do something like below
                        flag = true;
                        break;
                    }
        }
    

    【讨论】:

    • @masoud,谢谢。但在这种情况下,OP 使用 SqlBulkCopy。我可以在不使用 SqlBulkCopy 的情况下做到这一点吗?并且 OP 插入了所有行,我只想插入 GriedView 的选定行数据。
    • @MAS1:是的,您可以更改代码以选择您喜欢的行。如果不能使用 SqlBulkCopy,可以使用 Enterprise Library。
    • 只有我想知道,如何勾选,用户勾选了哪些复选框。
    • @MAS1:您可以在第一列上放置一个复选框,然后检查它。请查看更新后的答案。
    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    相关资源
    最近更新 更多