当前位置:首页 > VBNET2008六种添加记录方法学习笔记(图例、源码、说明)
VBNET2008六种添加记录方法学习笔记
(图例、源码、说明)
(本文代码VB.NET2008 + SQL Server 2005下测试通过。)
VB6.0向VB.NET过渡后,很多编程爱好者对VB.NET数据库编程感到迷惑,本文通过对国内教材、国外教材、老教材、新教材的研究,将作者看到过的6种(insert语句、参数化3种、行提交、存储过程、)添加(增加)记录的方法提炼出来,并分析了各种添加记录的优点、缺点及是否常用等做了简单叙述。读者可以根据这些方法编写出对应的增删改查(CRUD)代码,使自己的程序编写的更加容易理解,提高编程效率,提升程序的运行速度。
百度文库首发,侵权必究。
一、前期准备工作(图例)
1、引用数据库命名空间
使用数据库对象时要首先导入数据库命名空间,数据库对象的命名空间根据你所使用的数据库不同,命名空间也不一样。本文使用的是SQL Server的命名空间。
Imports System.Data.SqlClient
2、界面设计
1个Datagridview控件,5个TextBox控件,1个DateTimePicker控件,5个按钮控件。具体控件示例如下:
3、在Datagridview表格中预览数据库记录 简单的查询了这个表的所有记录。
Private Sub dataView()
Dim objConn As New SqlClient.SqlConnection Dim objDa As New SqlClient.SqlDataAdapter Dim objComm As New SqlClient.SqlCommand Dim objDs As New DataSet
objConn.ConnectionString = \ID=wink;Pwd=wcp6810662\
objComm.CommandText = \ objComm.Connection = objConn objDa.SelectCommand = objComm objConn.Open()
objDa.Fill(objDs, \) objConn.Close()
DataGridView1.DataSource = objDs.Tables(\) End Sub
4、窗体加载时调用dataView()过程预览数据库记录
窗体的 Form2_Load方法在本文的程序代码段中多次被调用以刷新表
格,读者可以直接调用dataView()过程刷新表格。
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call dataView() End Sub
二、添加记录的六种方法及简要分析(源码及说明)
请注意代码段使用时注意控件名称,否则复制粘贴后容易出现错误。
1、使用INSERT语句添加记录方法:
直接使用SQL的INSERT语句在数据库中添加记录,这种方法大家会经常见到,此种方法较为初级,数据库字段较多时不便于维护,但较为直观,很多初学者使用此方法。
按钮2代码如下:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim objConn As New SqlClient.SqlConnection Dim objComm As New SqlClient.SqlCommand
objConn.ConnectionString = \ID=wink;Pwd=wcp6810662\
objComm.Connection = objConn Dim sql As String
sql = \ & TextBox1.Text.ToString().Trim() & \ & TextBox2.Text.ToString().Trim() & \ & TextBox3.Text.ToString().Trim() & \ &
TextBox4.Text.ToString().Trim() & \ & TextBox5.Text.ToString().Trim() & \ & DateTimePicker1.Value & \ objComm.CommandText = sql objConn.Open() Try
objComm.ExecuteNonQuery()
Catch sqlExceptionErr As SqlClient.SqlException MessageBox.Show(sqlExceptionErr.Message) Finally
objConn.Close() End Try
Call Form2_Load(sender, e)
MsgBox(\添加成功!\, MsgBoxStyle.Information, \提示\) End Sub
2、参数化方式增加数据库记录方法(VB.NET2008之前): 这种添加记录的方法VB.NET2008之前较为常用,2008版本之后SqlClient.SqlCommand.Add方法被覆写为
SqlClient.SqlCommand.AddWithValue方法。该方法的好处是可以在数据记录进入数据库之前控制各个字段的类型,缺点是编程时写代码较为麻烦。
按钮3代码如下:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim objConn As New SqlClient.SqlConnection Dim objComm As New SqlClient.SqlCommand Dim insert As String
insert = \
insert = insert & \
objConn.ConnectionString = \ID=wink;Pwd=wcp6810662\
objComm.Connection = objConn objComm.CommandText = insert
objComm.Parameters.Add(\, SqlDbType.Int).Value = Trim(TextBox1.Text)
objComm.Parameters.Add(\, SqlDbType.VarChar).Value = Trim(TextBox2.Text) objComm.Parameters.Add(\, SqlDbType.VarChar).Value = Trim(TextBox3.Text) objComm.Parameters.Add(\, SqlDbType.Int).Value = Trim(TextBox4.Text)
objComm.Parameters.Add(\, SqlDbType.VarChar).Value = Trim(TextBox5.Text)
objComm.Parameters.Add(\, SqlDbType.DateTime).Value = DateValue(Me.DateTimePicker1.Text) objConn.Open() Try
objComm.ExecuteNonQuery()
Catch sqlExceptionErr As SqlClient.SqlException MessageBox.Show(sqlExceptionErr.Message) Finally
objConn.Close() End Try
Call Form2_Load(sender, e)
MsgBox(\添加成功!\, MsgBoxStyle.Information, \提示\) End Sub
3、参数化方式增加数据库记录方法(VB.NET2008及以后): 这种添加记录的方法使用SqlClient.SqlCommand.AddWithValue的属性实现以参数化方式增加记录。以参数化方式增加数据库记录的明显优势是字段关系清晰,并且避免了SQLServer本身的一些漏洞,如注释语句产生的问题。当以参数化的方式添加记录时要考虑
SqlCommand类的CommandText属性,需要在SQL语句中使用“@”指明参数;SqlCommand类Parameter属性是SqlParameter参数集合,需要使用Add或AddWithValue方法向集合中添加参数,然后才能使用具体参数的Value属性进行赋值操作。
按钮4代码如下:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim objConn As New SqlClient.SqlConnection Dim objComm As New SqlClient.SqlCommand
objConn.ConnectionString = \ID=wink;Pwd=wcp6810662\
objComm.Connection = objConn
objComm.CommandText = \(@id,@name,@sex,@age,@address,@birth)\
objComm.Parameters.AddWithValue(\, TextBox1.Text) objComm.Parameters.AddWithValue(\, TextBox2.Text) objComm.Parameters.AddWithValue(\, TextBox3.Text) objComm.Parameters.AddWithValue(\, TextBox4.Text) objComm.Parameters.AddWithValue(\, TextBox5.Text)
objComm.Parameters.AddWithValue(\, DateValue(DateTimePicker1.Value)) objConn.Open() Try
objComm.ExecuteNonQuery()
Catch sqlExceptionErr As SqlClient.SqlException MessageBox.Show(sqlExceptionErr.Message) Finally
objConn.Close() End Try
Call Form2_Load(sender, e)
MsgBox(\添加成功!\, MsgBoxStyle.Information, \提示\) End Sub
4、以行提交的方式插入数据库记录方法:
使用SqlCommand命令对象与数据库交互,并插入新记录。当应用程序使用数据集存储记录时,可以使用TableAdapter类的Update()方法,该方法会将所有更改(包括更新、插入及删除)发送到数据库中。这种方法在国产的教材、教程、书籍中较为常见。
按钮5代码如下:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim strSql As String Dim strConn As String
Dim objDA As SqlClient.SqlDataAdapter Dim objds As New Data.DataSet
Dim objcb As SqlClient.SqlCommandBuilder Dim objrow As Data.DataRow
strConn = \ strSql = \
objDA = New SqlClient.SqlDataAdapter(strSql, strConn) objcb = New SqlClient.SqlCommandBuilder(objDA) objDA.Fill(objds, \)
objrow = objds.Tables(\).NewRow objrow(\) = Trim(TextBox1.Text) objrow(\) = Trim(TextBox2.Text) objrow(\) = Trim(TextBox3.Text) objrow(\) = Trim(TextBox4.Text) objrow(\) = Trim(TextBox5.Text)
objrow(\) = DateValue(Me.DateTimePicker1.Text) objds.Tables(\).Rows.Add(objrow) objDA.Update(objds, \) Call Form2_Load(sender, e)
MsgBox(\添加成功!\, MsgBoxStyle.Information, \提示\) End Sub End Class
5、使用存储过程添加记录的方法:
共分享92篇相关文档