VBNET2008六种添加记录方法学习笔记(图例、源码、说明).doc_第1页
VBNET2008六种添加记录方法学习笔记(图例、源码、说明).doc_第2页
VBNET2008六种添加记录方法学习笔记(图例、源码、说明).doc_第3页
VBNET2008六种添加记录方法学习笔记(图例、源码、说明).doc_第4页
VBNET2008六种添加记录方法学习笔记(图例、源码、说明).doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VBNET2008六种添加记录方法学习笔记(图例、源码、说明)(本文代码VB.NET2008 + SQL Server 2005下测试通过。)VB6.0向VB.NET过渡后,很多编程爱好者对VB.NET数据库编程感到迷惑,本文通过对国内教材、国外教材、老教材、新教材的研究,将作者看到过的6种(insert语句、参数化3种、行提交、存储过程、)添加(增加)记录的方法提炼出来,并分析了各种添加记录的优点、缺点及是否常用等做了简单叙述。读者可以根据这些方法编写出对应的增删改查(CRUD)代码,使自己的程序编写的更加容易理解,提高编程效率,提升程序的运行速度。百度文库首发,侵权必究。 一、前期准备工作(图例)1、引用数据库命名空间使用数据库对象时要首先导入数据库命名空间,数据库对象的命名空间根据你所使用的数据库不同,命名空间也不一样。本文使用的是SQL Server的命名空间。 Imports System.Data.SqlClient2、界面设计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 = Data Source=49;Initial Catalog=ldg;User ID=wink;Pwd=wcp6810662 objComm.CommandText = select * from wink objComm.Connection = objConn objDa.SelectCommand = objComm objConn.Open() objDa.Fill(objDs, wink) objConn.Close() DataGridView1.DataSource = objDs.Tables(wink) End Sub4、窗体加载时调用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 = Data Source=49;Initial Catalog=ldg;User ID=wink;Pwd=wcp6810662 objComm.Connection = objConn Dim sql As String sql = insert into wink (id,name,sex,age,address,birth) values( & 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 Sub2、参数化方式增加数据库记录方法(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 into wink (id,name,sex,age,address,birth) insert = insert & values (id,name,sex,age,address,birth) objConn.ConnectionString = Data Source=49;Initial Catalog=ldg;User ID=wink;Pwd=wcp6810662 objComm.Connection = objConn objComm.CommandText = insert objComm.Parameters.Add(id, SqlDbType.Int).Value = Trim(TextBox1.Text) objComm.Parameters.Add(name, SqlDbType.VarChar).Value = Trim(TextBox2.Text) objComm.Parameters.Add(sex, SqlDbType.VarChar).Value = Trim(TextBox3.Text) objComm.Parameters.Add(age, SqlDbType.Int).Value = Trim(TextBox4.Text) objComm.Parameters.Add(address, SqlDbType.VarChar).Value = Trim(TextBox5.Text) objComm.Parameters.Add(birth, 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 Sub3、参数化方式增加数据库记录方法(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 = Data Source=49;Initial Catalog=ldg;User ID=wink;Pwd=wcp6810662 objComm.Connection = objConn objComm.CommandText = insert into wink (id,name,sex,age,address,birth) values (id,name,sex,age,address,birth) objComm.Parameters.AddWithValue(id, TextBox1.Text) objComm.Parameters.AddWithValue(name, TextBox2.Text) objComm.Parameters.AddWithValue(sex, TextBox3.Text) objComm.Parameters.AddWithValue(age, TextBox4.Text) objComm.Parameters.AddWithValue(address, TextBox5.Text) objComm.Parameters.AddWithValue(birth, 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 Sub4、以行提交的方式插入数据库记录方法:使用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 = Data Source=49;Initial Catalog=ldg;User ID=wink;Pwd=wcp6810662 strSql = select * from wink objDA = New SqlClient.SqlDataAdapter(strSql, strConn) objcb = New SqlClient.SqlCommandBuilder(objDA) objDA.Fill(objds, wink) objrow = objds.Tables(wink).NewRow objrow(id) = Trim(TextBox1.Text) objrow(name) = Trim(TextBox2.Text) objrow(sex) = Trim(TextBox3.Text) objrow(age) = Trim(TextBox4.Text) objrow(address) = Trim(TextBox5.Text) objrow(birth) = DateValue(Me.DateTimePicker1.Text) objds.Tables(wink).Rows.Add(objrow) objDA.Update(objds, wink) Call Form2_Load(sender, e) MsgBox(添加成功!, MsgBoxStyle.Information, 提示) End SubEnd Class5、使用存储过程添加记录的方法:由于时间关系此处用到的数据库是Oracle数据库,但与SQLServer基本相似。是一种比较偏向于企业级的添加记录的方法。该方法减少了本地处理时间,但是增加了数据库的负担。并且可以通过存储过程的编程更加灵活地添加记录。按钮代码如下: Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim objCmd As New OracleClient.OracleCommand() objCmd.Connection = New OracleClient.OracleConnection(strConn) objCmd.CommandText = bzk22.addtest objCmd.CommandType = CommandType.StoredProcedure objCmd.Parameters.Add(Pro_A, OracleClient.OracleType.VarChar).Value = TextBox1.Text objCmd.Parameters.Add(Pro_B, OracleClient.OracleType.VarChar).Value = TextBox2.Text objCmd.Parameters.Add(Pro_C, OracleClient.OracleType.VarChar).Value = TextBox3.Text objCmd.Parameters.Add(Pro_D, OracleClient.OracleType.VarChar).Value = TextBox4.Text objCmd.Parameters.Add(Pro_S, OracleClient.OracleType.DateTime).Value = DateTimePicker1.Value.Date cmd.Parameters.Add(io_cursor, OracleType.Cursor).Direction = ParameterDirection.Output Dim objDA As New OracleClient.OracleDataAdapter(objCmd) Dim objDs As New DataSet() objDA.Fill(objDs, test) Call GridView() End Sub存储过程代码如下:create or replace procedure addTest( Pro_A TEST.A%type, Pro_B TEST.B%type, Pro_C TEST.C%type, Pro_D TEST.D%type, Pro_S TEST.S%type)asbegininsert into TEST (A,B,C,D,S) values(Pro_A,Pro_B,Pro_C,Pro_D,Pro_S);-4个参数 commit;end;6、参数化及占位符方式增加数据库记录方法:该方法与JAVA中使用SQL添加记录的方法较为相似,是方法3的一种变化,是较新的方法。该方法使用“?”进行站位,并且按照数据库中字段的顺序进行赋值。使用时要注意“?”的个数应与字段个数一致,否则将出现错误。按钮1代码如下: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim objConn As New SqlClient.SqlConnection Dim objComm As New SqlClient.SqlCommand objConn.ConnectionString = Data Source=49;Initial Catalog=ldg;User ID=wink;Pwd=wcp6810662 objComm.Connection = objConn objComm.CommandText = insert into wink (id,name,sex,age,address,birth) values (?, ?, ?, ?, ?, ?) objComm.Parameters.AddWithValue(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论