Imports System.Data.SqlClient
Public Class Form4
Dim cn As SqlConnection
Dim da As SqlDataAdapter
Dim ds As DataSet
Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim cnstr As String = "Data Source=(local);initial Catalog=AmusementPark;Integrated Security=true;"
cn = New SqlConnection(cnstr)
da = New SqlDataAdapter("select * from 游客表", cn)
ds = New DataSet()
da.Fill(ds, "游客表")
DataGridView1.DataSource = ds.Tables("游客表")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
End Sub
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
Me.Hide()
Form2.Show()
End Sub
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub Button7_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button7.Click
If Me.TextBox1.Text <> "" And Me.TextBox2.Text <> "" Then
Dim insert As String
insert = "insert into 游客表(Vid,VName,ID,FP,Pword,Birthdate)"
insert = insert & "values (@ei,@ci,@cc,@zyh,@ce,@cg)"
Call cn.Open()
Dim cmd As New SqlClient.SqlCommand(insert, cn)
cmd.Parameters.Add("@ei", SqlDbType.BigInt).Value = Trim(TextBox1.Text)
cmd.Parameters.Add("@ci", SqlDbType.NVarChar).Value = Trim(TextBox2.Text)
cmd.Parameters.Add("@cc", SqlDbType.Char).Value = Trim(TextBox3.Text)
cmd.Parameters.Add("@zyh", SqlDbType.NVarChar).Value = Trim(TextBox4.Text)
cmd.Parameters.Add("@cg", SqlDbType.Date).Value = Trim(TextBox6.Text)
cmd.Parameters.Add("@ce", SqlDbType.NVarChar).Value = Trim(TextBox5.Text)
Dim v = cmd.ExecuteNonQuery()
MsgBox("添加成功!", MsgBoxStyle.Information, "提示")
Call cn.Close()
Else
MsgBox("游客姓名和編號不能為空!", MsgBoxStyle.Information, "提示")
End If
End Sub
Private Sub Button9_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button9.Click
If Me.TextBox1.Text <> "" And Me.TextBox2.Text <> "" Then
Dim edit As String
edit = "update 游客表 set Vid=@ei,VName=@ci,ID=@cc,FP=@zyh,Pword=@ce,Birthdate=@cg"
edit = edit & " where 姓名='" & Trim(TextBox1.Text) & "'"
Call cn.Open()
Dim cmd As New SqlClient.SqlCommand(edit, cn)
cmd.Parameters.Add("@ei", SqlDbType.BigInt).Value = Trim(TextBox1.Text)
cmd.Parameters.Add("@ci", SqlDbType.NVarChar).Value = Trim(TextBox2.Text)
cmd.Parameters.Add("@cc", SqlDbType.Char).Value = Trim(TextBox3.Text)
cmd.Parameters.Add("@zyh", SqlDbType.NVarChar).Value = Trim(TextBox4.Text)
cmd.Parameters.Add("@cg", SqlDbType.Date).Value = Trim(TextBox6.Text)
cmd.Parameters.Add("@ce", SqlDbType.NVarChar).Value = Trim(TextBox5.Text)
cmd.ExecuteNonQuery()
MsgBox("修改成功!", MsgBoxStyle.Information, "提示")
Call cn.Close()
Else
MsgBox("游客編號和姓名不能為空!", MsgBoxStyle.Information, "提示")
End If
End Sub
uj5u.com熱心網友回復:
cmd.Parameters.Add("@cg", SqlDbType.Date).Value = Trim(TextBox6.Text)這種代碼型別不一致
uj5u.com熱心網友回復:
TextBox6.Text里面是什么內容?插入資料庫之前,盡可能對每個欄位進行一下判斷,是否合法。比如資料庫的DataTime欄位,插入一個"abc"肯定會失敗,如果提前判斷出來,就不需要額外做一次插入記錄的動作,也不需要靠例外來捕獲這個完全可以避免的輸入錯誤。
uj5u.com熱心網友回復:
另外,類似cmd.Parameters.Add("@ei", SqlDbType.BigInt).Value = Trim(TextBox1.Text)這類代碼,也是同一類問題。不要靠運氣去胡亂寫代碼,靠運氣蒙過去的代碼,會憑本事徹底在最終用戶面前、在特定資料和流程面前,丟人。
uj5u.com熱心網友回復:
本人醫學專業的學生,SQL資料庫設計才接觸到vb.net,所以確實是有很多不懂,您說丟人那也確實是,不過我只是想來尋找解決問題的方法uj5u.com熱心網友回復:
撰寫程式,“從型別出發進行設計”是個必要的素質,實際上很清楚地表示一個程式員所受的當初的編程教育的檔次。例如 Dim t = CType("2012/7/18 13:0", Date)這樣的強型別代碼表示你知道要在編譯時進行盡量地檢查,運行時要盡可能提前報錯。而不是推遲。型別上含糊甚至錯誤的代碼,這么明顯地糊弄過去了,如果在代碼復查是如果自己看不出來,是個很嚴重的問題,是個上崗前就會嚴格對待的問題。
uj5u.com熱心網友回復:
編程的“型別系統”,就好像是醫學專業能用儀器檢查、臨床科學實驗來驗證,而不是靠“診脈”來透視一切病癥。
uj5u.com熱心網友回復:
本來就是這學期網上授課才接觸到這個東西,很多東西都是上網搜尋內容或者是問同學摸索,我是本著虛心求問的態度發帖,又不是給你個平臺讓你在這里高談闊論來展示你所謂的“專業素養”。uj5u.com熱心網友回復:
系統格式和應用格式不一致也會提示錯誤,比如 - / 等,我曾經受到過類似的折磨。另外,我友情提示一下,如果學校沒有限制應用語言,建議Delphi,比VB強太多了。
uj5u.com熱心網友回復:
哎,可能你剛來,不知道回復你的是為大神,這位大神雖然說的話你不愛聽,但句句珠璣,新手可能沒體會,過段時間回i來看會明白的,教你捕魚比給你魚要有用的多。
至于你的問題,其實也回復了,就是要型別轉換,用型別轉換,你的問題就會變成型別轉換失敗,而不是資料庫相關的問題了,至于型別轉換失敗,就需要最開始前端做限制
uj5u.com熱心網友回復:
資料型別一定玩匹配,還有Null。不搞清楚,在一些極端情況(你認為的)下就會出錯
uj5u.com熱心網友回復:

看看你的資料值是啥
uj5u.com熱心網友回復:
Private Sub Button9_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button9.Click
if not isdate(textbox6.text) then
msgbox("無效的日期!", MsgBoxStyle.Information, "提示")
exit sub
end if
If Me.TextBox1.Text <> "" And Me.TextBox2.Text <> "" Then
…………
Else
MsgBox("游客編號和姓名不能為空!", MsgBoxStyle.Information, "提示")
End If
end sub
簡單粗暴,不是每個捕魚的人都想知道如何結網的,或許人家就是單純的想要條魚
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/19467.html
標籤:VB.NET
