这次是一个留言薄程序,就是把客人的留言“放入”数据库中。
首先我们要建立一个一个留言薄的Access文件,文件名:lyb.mdb (2012版为lyb.accdb) 其中表名为lyb
勤劳的人就自己建立一个吧,图下图(里面没有数据,只有一表结构,因为我们只是设计)
注意的是,日期用默认值,这样可以获得留言时的时间(这个不用我们来考虑,Access加入记录时自动会写上当前准确时间)
如果你是懒人就用这个下载吧:http://download.csdn.net/detail/dzweather/5043544
这个简单程序有两块,一块是插入到数据库(Access)中,二块是显示数据库的内容。
Imports System.Data.OleDb Public Class Form1 Dim cn As OleDbConnection Dim cm As OleDbCommand Dim da As OleDbDataAdapter Dim ds As DataSet Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\lyb.mdb;Persist Security Info=False") da = New OleDbDataAdapter("select * from lyb order by 时间 desc", cn) ds = New DataSet() da.Fill(ds, "lyb") DataGridView1.DataSource = ds.Tables("lyb") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim Name As String = TextBox1.Text Dim Email As String = TextBox2.Text Dim Subject As String = TextBox3.Text Dim Memo As String = TextBox4.Text If Name = "" Or Email = "" Or Subject = "" Or Memo = "" Then MessageBox.Show("字段有未填写,请再次填写!") Exit Sub End If 'Try cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\lyb.mdb;Persist Security Info=False") cn.Open() '插入前,必须连接 Dim sql As String = "insert into lyb (姓名,Email,主题,内容) values('" & Name & "','" & Email & "','" & Subject & "','" & Memo & "')" cm = New OleDbCommand(sql, cn) cm.ExecuteNonQuery() cn.Close() MessageBox.Show("保存成功!!!") 'Catch ex As Exception ' MessageBox.Show("保存失败!") 'End Try End Sub End Class
===================================================================================================
细节:
一、在执行Fill方法时,只是针对Select查询。
在执行查询结果集时,如果前面连接没有打开,由自动根据参数打开连接,获得结果集后,再关闭连接。
如果前面连接已经打开,获得结果集后,仍保持连接打开。
即,执行后,仍保持原来的连接状态,是关则关,是开仍开。
二,但对于非查询语句,比修改、删除等,须要用command来执行。
在执行修改等结果集时,如果前面连接没有打开,则提出错误。
因此,修改等必须连接是打开的。