加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

DataGridView数据保存到数据库

(2015-03-10 08:51:51)
标签:

it

visualstudio

分类: VB.net
DataGridView通过BindingSource,绑定数据源后,进行修改、增加、删除后,单击“保存”按钮,将修改后的DataGridView数据直接保存到数据库(以postgreSQL数据库为例)中。
实现如下:

1.绑定数据源
 Me.DataGridView1.Columns.Clear()

‘获取数据库数据
Dim sqlCommand As String = "select * from report "
Dim dt As DataTable = DBService.Populate(sqlCommand)
’绑定数据源
Me.BindingSource1.DataSource = dt
Me.DataGridView1.DataSource = Me.BindingSource1
Me.BindingNavigator1.BindingSource = Me.BindingSource1

2.编辑DatagridView数据,进行增加、删除、修改等操作。

3.单击“保存”按钮,将数据保存到数据库。
DBService.SaveReportToDB(BindingSource1.DataSource)

 '''
    ''' Save dataTable to db
    '''
    ''' DataTable
    '''
    Shared Sub SaveReportToDB(ByVal dt As DataTable)
        Try
            OpenDBTransaction()

            Dim adapter As NpgsqlDataAdapter = New NpgsqlDataAdapter()

            ‘Insert command
            Dim sqlInsert As StringBuilder = New StringBuilder
            sqlInsert.Append(" insert into report ")
            sqlInsert.Append(" values (:report_id, :comment, :create_date, :create_user, :modify_date, :modify_user)")
            adapter.InsertCommand = New NpgsqlCommand(sqlInsert.ToString, conn)
            adapter.InsertCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":report_id",
                                             NpgsqlTypes.NpgsqlDbType.Char, 14, "report_id"))
            adapter.InsertCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":comment",
                                             NpgsqlTypes.NpgsqlDbType.Char, 100, "comment"))
            adapter.InsertCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":create_date", DateTime.Now))
            adapter.InsertCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":create_user", System.Environment.UserName))
            adapter.InsertCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":modify_date", DateTime.Now))
            adapter.InsertCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":modify_user", System.Environment.UserName))

           'Delete command
            Dim sqlDelete As StringBuilder = New StringBuilder
            sqlDelete.Append(" delete from report ")
            sqlDelete.Append(" where report_id=:report_id")
            adapter.DeleteCommand = New NpgsqlCommand(sqlDelete.ToString, conn)
            adapter.DeleteCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":report_id",
                                             NpgsqlTypes.NpgsqlDbType.Char, 14, "report_id"))

            'Update command
            Dim sqlUpdate As StringBuilder = New StringBuilder
            sqlUpdate.Append(" update report ")
            sqlUpdate.Append(" set comment=:comment ")
            sqlUpdate.Append(" where report_id=:report_id ")
            adapter.UpdateCommand = New NpgsqlCommand(sqlUpdate.ToString, conn)
            adapter.UpdateCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":report_id",
                                             NpgsqlTypes.NpgsqlDbType.Char, 14, "report_id"))
            adapter.UpdateCommand.Parameters.Add(New Npgsql.NpgsqlParameter(":comment",
                                             NpgsqlTypes.NpgsqlDbType.Char, 100, "comment"))

            adapter.Update(dt)
            Commit()
        Catch ex As Exception
            RollBack()
            MessageBox.Show(ex.Message)
        Finally
            CloseDB()
        End Try
    End Sub

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有