如何更新,使用数据适配器或vb.net中的其他方法通过datagridview将记录插入到sql中

时间:2014-02-14 06:09:56

标签: sql vb.net datagridview

你好世界上最好的程序员我需要你的专家建议和协助我的项目。 我试图通过单击命令按钮通过datagridview插入和更新我的表, 我将datagridview属性设置为editmode:editprogrammatically,

这是我提取datagridview内容的代码:

Public Sub loaddgvfrm3()
    cmdconn = New SqlConnection
    cmd = New SqlCommand
    cmdconn.ConnectionString = sqlstr
    cmdconn.Open()
    cmd.Connection = cmdconn
    cmd.CommandText = "select  period, VOUCH_AMT, INDIVIDUAL_AMT, check_no, D_MAILED,           DIR_NO from tobee.EBD_BILLHISTORY where CLAIM_NO like '" + txtClaimno.Text + "'"


    Dim dt As New DataTable
    da = New SqlDataAdapter
    da.SelectCommand = cmd
    da.Fill(dt)
    Me.DataGridView1.DataSource = dt
    Me.DataGridView2.DataSource = dt
    cmdconn.Close()

End Sub

现在我在这里有我的命令按钮 这是添加按钮:(我更喜欢在所选表格中添加一行)

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click

End Sub

这是编辑按钮:

Private Sub btnEditmain_Click(sender As Object, e As EventArgs) Handles btnEditmain.Click

    ''Form1.ShowDialog()
    'DataGridView2.AllowUserToAddRows = True
    ''DataGridView2.BeginEdit(True)
    'btnSave.Enabled = True

End Sub 这是保存按钮,应保存我已完成的所有更改,

Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click

    Dim connstr As String = "server=midtelephone\sqlexpress; database=testdb; user= sa; password=sa;"

End Sub

我将命令按钮内容留空,因为我需要创建一个插入,更新行的新方法。因为我之前的那个是失败的,虽然它在sql中插入了数据,但没有在相应的行中插入,请看一下这里:Data inserted from datagridview not updated in SQL Server,而是创建另一行与''无关' “+ txtClaimno.Text +”'“(从上面说明)所以会发生的事情是它堆叠了一个新行而没有来自另一个表的连接所有者(claim_no< this claim_no从另一个表连接为数据库中的fk但是(billhistory表)中的主键) 你能不能帮助我摆脱这个问题,因为我很难进入项目的下一阶段?我只是一个高中生,所以请耐心等待:)如果你对我的问题给出评论/答案,我将不胜感激:)谢谢你。

我的导师建议我使用数据适配器接受更改的东西,但我不知道如何实现这些东西。请帮助我谢谢你:))

1 个答案:

答案 0 :(得分:0)

使用事件从 gridConttent上的 gridview 获取数据单击这些值以查询或存储过程。

 private void grdCampaignStats_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

                //I want to get value of SomeColumn of grid view having datatype String 
                string SomeVariabel = grd["CoulmnNameinGRID", e.RowIndex].Value.ToString();

           // Make it according to Vb it is C# code 
        }