将数据从 DataGridView 插入数据库 [英] Inserting data from a DataGridView to a database

查看:71
本文介绍了将数据从 DataGridView 插入数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个小的 DataGridView 可以让用户输入数据.

I have a small DataGridView which lets the user enter data.

我正在尝试使用此代码将 DataGridView 中的数据输入到数据库中.

And I'm trying this code to enter the data in the DataGridView to the database.

    strQry = "INSERT INTO Emp_Fam_Details (empID, famName, famAge, famRelation, famOccup)" _
            & "VALUES (@ID, @Name, @Age, @Rel, @Occ)"
    Dim adapFam As New SqlDataAdapter
    adapFam.InsertCommand = New SqlCommand(strQry, sqlcon)

    For i As Integer = 0 To grdFamily.Rows.Count - 1
        adapFam.InsertCommand.Parameters.AddWithValue("@ID", txtEmpID.Text.Trim)
        adapFam.InsertCommand.Parameters.AddWithValue("@Name", grdFamily.Columns(0))
        adapFam.InsertCommand.Parameters.AddWithValue("@Age", grdFamily.Columns(1))
        adapFam.InsertCommand.Parameters.AddWithValue("@Rel", grdFamily.Columns(2))
        adapFam.InsertCommand.Parameters.AddWithValue("@Occ", grdFamily.Columns(3))

        result2 = adapFam.InsertCommand.ExecuteNonQuery()
    Next

当我运行这个时,我遇到了这个错误.

When I run this, I come across this error.

我在 SO 上找到了 this 解决方案,但由于我使用的是未附加值的参数,因此我有一个很难理解如何使用参数来做到这一点.

I found this solution here on SO but since I'm using Parameters not appended values, I'm having a hard time understanding how to do it with parameters.

谁能告诉我如何做到这一点?

Can anyone please show me how to do this?

谢谢大家.

推荐答案

您不能将列映射到数据.您需要添加的是该列索引的行单元格数据

You cannot map columns to data. What you need to add is the row cell data of that column index

这是错误的grdFamily.Columns(0)

for 循环中的参数分配应更正如下

Parameter assignment within the for loop should be corrected as follows

注意请根据您的表格更改数据类型.

NOTE Please change datatype as per your table.

adapFam.InsertCommand.Parameters.Add("@ID", SqlDbType.Int)
adapFam.InsertCommand.Parameters.Add("@Name", SqlDbType.VarChar)
adapFam.InsertCommand.Parameters.Add("@Age", SqlDbType.VarChar)
adapFam.InsertCommand.Parameters.Add("@Rel", SqlDbType.VarChar)
adapFam.InsertCommand.Parameters.Add("@Occ", SqlDbType.VarChar)

For i As Integer = 0 To grdFamily.Rows.Count - 1
  adapFam.InsertCommand.Parameters[0].Value = Convert.ToInt32(txtEmpID.Text.Trim)
  adapFam.InsertCommand.Parameters[1].Value = grdFamily.Rows[i].Cells[0].Value
  adapFam.InsertCommand.Parameters[2].Value = grdFamily.Rows[i].Cells[1].Value
  adapFam.InsertCommand.Parameters[3].Value = grdFamily.Rows[i].Cells[2].Value
  adapFam.InsertCommand.Parameters[4].Value = grdFamily.Rows[i].Cells[3].Value

    result2 = adapFam.InsertCommand.ExecuteNonQuery()
Next

这篇关于将数据从 DataGridView 插入数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆