作者su35 (su35)
看板Visual_Basic
标题[.NET] 如何写入资料库
时间Wed Dec 24 19:54:57 2008
我用vb2005.net 开ms sql的资料库 档名cNorthWind.mdf
表单名称 员工
问题一Dim da As New SqlClient.SqlDataAdapter(SQL, conn)
Dim dc As New SqlClient.SqlCommand(SQL, conn)
这两个有什麽不同 一样都是SQL语法 还是说一个只有查询 一个是加入删除的功能
问题二 DBACCRESS.ExecuteCmd(....,.....)
{
这涵数 当parameters有值的话 它到底做了什麽事
parameters 它储存什麽东西
}
问题三
我在Button2 做了把第一列的栏位资料删除
它在不关掉程式 的确那栏资料不见了
可是根本没写入到资料库内
为什麽会这样 还有要怎麽样才能写进去
感谢
Public Class Form1
Dim DB As DbAccess
Dim DT As New DataTable
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
UpData()
End Sub
Sub UpData()
DB = New DbAccess("cNorthWind.mdf")
DT = DB.GetDataTable("select * from 员工")
DB = Nothing
DataGridView1.DataSource = DT '将DataTable 传给DataGridView
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DB = New DbAccess("cNorthWind.mdf")
DT = DB.GetDataTable("select * from 员工 where 员工编号 = '" & TextBox1.Text & "'")
DataGridView1.DataSource = DT
DB = Nothing
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SQL_string = "delete from 员工 where 员工编号 = '1'"
DB = New DbAccess("cNorthWind.mdf")
DB.ExecuteCmd(SQL_string)
DB = Nothing
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
DB = New DbAccess("cNorthWind.mdf") '建立资料库连线
DT = DB.GetDataTable("select * from 员工") '写sql 读取资料到DataTable
DB = Nothing '解除物件
DataGridView1.DataSource = DT '将DataTable 传给DataGridView
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
DB = New DbAccess("cNorthWind.mdf") '建立资料库连线
DT = DB.GetDataTable("select * from 员工") '写sql 读取资料到DataTable
Dim DA As DataAdapter
DA.Update(DS)
End Sub
End Class
Public Class DbAccess
Private conn As SqlClient.SqlConnection
Private _ErrorMessage As String
'回传错误讯息
Public Property ErrorMessage() As String
Get
Return _ErrorMessage
End Get
Set(ByVal value As String)
_ErrorMessage = value
End Set
End Property
Sub New(ByVal SqlExpressDbName As String)
'建立连线
If System.IO.Path.GetDirectoryName(SqlExpressDbName) = "" Then
conn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\" & SqlExpressDbName & ";Integrated Security=True;User Instance=True")
Else
conn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & SqlExpressDbName & ";Integrated Security=True;User Instance=True")
End If
End Sub
'读取资料
Function GetDataTable(ByVal SQL As String) As DataTable
Try
Dim dt As New DataTable
Dim da As New SqlClient.SqlDataAdapter(SQL, conn)
da.Fill(dt)
Return dt
Catch ex As Exception
MsgBox("读取资料时发生错误(" & SQL & ") " & vbCrLf & "错误讯息:" & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
'执行命令
Function ExecuteCmd(ByVal SQL As String) As Integer
Return ExecuteCmd(SQL, Nothing)
End Function
'执行命令
Function ExecuteCmd(ByVal SQL As String, ByVal parameters As SqlClient.SqlParameterCollection) As Integer
Try
If conn.State <> ConnectionState.Open Then conn.Open()
Dim dc As New SqlClient.SqlCommand(SQL, conn)
'处理参数
If parameters IsNot Nothing Then
dc.Parameters.Clear()
For Each item As SqlClient.SqlParameter In parameters
dc.Parameters.AddWithValue(item.ParameterName, item.Value)
Next
End If
'执行
Return dc.ExecuteNonQuery
Catch ex As Exception
MsgBox("执行命令时发生错误(" & SQL & ") " & vbCrLf & "错误讯息:" & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
End Class
--
"◢██◣ 呼呼呼~ 为什麽…我这麽爱你…
↙操B跑车 " ,█◥◥◥ ˊ 对不起,他有车。 ˋ ◢██◣
▄◣ ◤ ◎ ◎ ◣◢██◣ˊ █◥◥◥▌
◣◥◣ ◥ ▼◤ ▉█◥◥◥ ◤ ▇ ▇◤
██████ ◣ ╲██◣ ▉◤ ▄ ▄ ◥ █▲◤
██◤▄◥█▃ ◢ █▃●╲ ◤╲█"█◤ g121630作 ◢ ◣ ◣
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.105.76