【发布时间】:2014-05-21 06:59:05
【问题描述】:
大家好,我当前的系统有问题。
在我的表单中使用此查询一切正常。
Private Sub btnsearch_Click(sender As Object, e As EventArgs) Handles btnsearch.Click
'Dim connstr As String = "server=midtelephone\sqlexpress; database=testdb; user= sa; password=sa;"
Dim cmdconn2 = New SqlConnection
cmdconn2 = New SqlConnection
cmd = New SqlCommand
cmdconn2.ConnectionString = sqlstr
cmd.Connection = cmdconn2
cmdconn2.Open()
If CheckForText1() = False Then
MessageBox.Show("Cannot search with an empty value!")
frmVetsearch.Dispose()
Exit Sub
Else
cmd.CommandText = "select a.lname, a.fname, a.mi, a.vdms_no, b.lname, b.fname, b.mi, b.CLAIM_NO, c.ADDRESS1, c.ADDRESS2, c.ADDRESS3, c.sex, c.SCHOOL, c.C_YEAR, c.COURSE," & _
"c.telephone_no, c.mobile_no, c.email_add, c.EFFECTIVITY_DATE, c.SCC_NO, c.MLIST_NO, c.CATEGORY, c.DATE_FILED, c.relation_to_veteran, c.ENTITLEMENT_AWARD," & _
"c.REMARKS, c.UPDATED_BY, c.D_UPDATED from carlos.claims_veteran a left join carlos.claims_waivee b on a.vdms_no = b.vdms_no left join tobee.EBD_SCHBILLS c " & _
"on b.claim_no = c.CLAIM_NO where a.lname like '" + txtLname.Text + "%' and a.fname like '%" + txtFname.Text + "%' and a.mi like '%" + txtMi.Text + "%' " & _
"and a.VDMS_no like '" + txtVDMSNo.Text + "%'"
btnsearch.Enabled = False
btnSearchStud.Enabled = False
frmVetsearch.ShowDialog()
cmdconn.Close()
End If
End Sub
现在,我正在尝试通过将此查询转换为存储过程来改进我的系统。 有没有可能我能做那件事。如果有的话,请给我一个指南或解决方案吗?提前致谢:)
【问题讨论】:
-
第一步:使用参数化查询,而不是将您的 SQL 连接在一起!这将保护您的应用免受 SQL 注入攻击,并提高您的性能。然后:您期望将其转换为存储过程有什么好处?正确参数化的查询和存储过程一样好,速度一样快......您想通过转换为存储过程来实现什么?
-
好吧,你知道存储过程。是除了形式.. 其中。您可以随时编辑查询而无需重新编译表单。
标签: vb.net stored-procedures sqlcommand