问题:存储过程解析1、数据库信息
常规
uffl 名称画:ImgTB
朗有者:dbo
创建日期:200B-7-2S 15:5B:54
文件迪PRIMARY
行:5
列:
键ID 名称数据类型丸小.一空默认信
ImglD ImgName ImgDes ImgExtName ImgTypelD UpdateTime IrngBiinar^ mt4
nvarchw255
nvarchaff1000
nvarchar10
ml4
smalldat..
.
4
im^ige1€
□
□
I
s
r
r
(01
[getdati
>|l
Ft im
se
NT
34亍项目
□
^-
?
ffi
s
:田.:S-. ffl-a-' . a-' s-s-.
?:曰
加
创
st
de
db
o
k
a
o
s
b
田
m
ln
vn
db
S
型
类
數
的
]
f
i
定
I
图
皤
户
色
则
认
户
M
OO'
关
表
视
存
用
角
规
默
用
5
胺
昭
冒
餌
苗J AddAndUp dat elm g
dt_aditos a ur ct control
dt_addt csauretc cntr O1_TI
d.t_%ddus er o b j( ct
^dt_adduserobject_vcs 勾
dt_che ck i nobject 蚪
dt_check i nobj ec t_n 号
dt_check?utob j ect 召d£_ che
ckc u t &bj e c t_ji ■fy dt_di
spl ayo aerror ^dt_di spl^yo
a4rror_u ^dt_droppr operti
esbyi d dt_dropuser obj ectbyi
d
I 舛dt_gener4teans i n^ine
^dt_get&ljwi thprop |-^ dt_je
t olj w i thpr op_u
dt_getproper ti asbyid
^^dt_getproperti a shjri d_u
^?dt_getproperti e sby1d_v c s
^)dt_getproperti esbyid_vcs_u
j^dt_i s under sour ce control
i sundersour cecontr ol u
2、S QL存储过程语法
创建存储过程
Create PROCEDURE存储过程名
存储过程参数
AS
执行语句
RETURN
执行存储过程
GO
3、参照语法代码分析
CREATE PROCEDURE AddA ndUpdatelmg
--“AddAndUpdatelmg ”为存储过程命名
@ImgID i nt,
@ImgName n varchar(255),
@lmgDes nvarchar(1000)=",
@lmgExtName nvarchar(10)=",
@ImgTypeID i nt=O,
@UpdateTime smalldatetime,
@ImgBi nary image=n ull
--@ 为存储过程声明变量
As --执行标志
--下面开始执行语句
If Exists (Select 1 From ImgTB Where ImgID=@ImgID)
--从ImgTB表中查找ImglD = 1的如果存在进行If反之else
\\ ------ 语法讲解----------------------
--Sql 里if语句
IF 条件BEGIN
执行语句
END
ELSE BEGIN
执行语句
END
\\ -----------------------------------
Begin
Update [ImgTB]
--更新表
Set
--Set变量的赋值,变量赋值时变量前必须加set 例如Set @ i = 1
lmgName=@lmgName,lmgDes=@lmgDes,lmgExtName=@lmgExtName,lmgTypelD=@lmgTy
pelD,UpdateTime=@UpdateTime,lmgBi nary=@lmgBi nary Where
lmglD=@lmglD
--给我数据库的值进行传递
Select @@RowCou nt
--@@ RowCou nt @@为系统变量值
End
--结束If
Else
Begin
Declare @NewID smalli nt
--Declare声明多变量声明一个新变量 newID类型为smallint
set @NewID=0
--设置新的变量初始值
Select @NewlD=lsNull(Max([lmglD]),0)+1 From [ImgTB]
INSERT INTO [ImgTB] (ImgID,ImgName,ImgDes,ImgExtName,ImgTypeID,UpdateTime,ImgBi nary) Values (@ImgID,@ImgName,@ImgDes,@ImgExtName,@ImgTypeID,@UpdateTime,@ImgBi nary) Select @NewID
--insert info插入一个新的数据
End
4、使用过程如下
'外部声明
Private SqlConn As SqlConnection
Private SqlAdapter As SqlDataAdapter
Private SqlComm As SqlCommand
Private SqlBuilder As SqlCommandBuilder
Private pr As SqlParameter
Private ImgTB As New DataTable
Private sql As String
Private DvCurRowlndex As Integer = -1
'函数内
Try
Dim connStr As String
connStr = "Server=.;Database=VB2005Sys;User ID=sa;Password=sa;Trusted_Connection=False"
"定义一个连接对象,连接到数据库
SqlConn = New SqlConnection(connStr)
SqlComm = New SqlCommand
SqlComm.Connection = SqlConn
https://www.doczj.com/doc/794519830.html,mandType = CommandType.StoredProcedure
https://www.doczj.com/doc/794519830.html,mandText = "AddAndUpdatelmg" '调用存储过程。
->数据库-> 数据存储过程-> 存储方法
pr = New SqlParameter('@lmglD" , SqlDbType.Int)
pr.Value = CInt(5)
SqlComm.Parameters.Add(pr)
pr = New SqlParameter('@lmgName" , SqlDbType.NVarChar, 255)
pr.Value = 5
SqlComm.Parameters.Add(pr)
'pr = New SqlParameter("@lmgDes", SqlDbType.NVarChar, 1000)
'If 5 > "" Then
' pr.Value = 5
'Else
' pr.Value =""
'End If
'SqlComm.Parameters.Add(pr)
pr = New SqlParameter('@lmgExtName" , SqlDbType.NVarChar, 10)
If "5" > "" Then
pr.Value = "5"
Else
pr.Value =""
End If
SqlComm.Parameters.Add(pr)
pr = New SqlParameter('@ImgTypeID" , SqlDbType.Int)
If "5 " > "" Then pr.Value = Clnt("5")
SqlComm.Parameters.Add(pr)
pr = New SqlParameter('@UpdateTime", SqlDbType.SmallDateTime)
pr.Value = "2001-02-10"
SqlComm.Parameters.Add(pr)
pr = New SqlParameter('@ImgBinary" , SqlDbType.Image)
If ImgPath > "" Then
fs = New FileStream(lmgPath, FileMode.Open)
Dim bt(fs.Length) As Byte
fs.Read(bt, 0, fs.L ength)
pr.Value = bt
Else
If Me.PictureBoxl.lmage IsNot Nothing Then
Me.PictureBox1.lmage.Save(fs, Me.PictureBoxl.lmage.RawFormat)
Dim bt(fs.Length) As Byte
fs.Read(bt, 0, fs. Length)
pr.Value = bt
End If
End If
SqlComm.Parameters.Add(pr)
SqlConn.Open()
SqlComm.ExecuteNonQuery()
Try
fs.Close()
Catch ex As Exception
End Try
SqlConn.Close()
SqlConn = Nothing
' Return True
Catch ex As SqlException
Dim errItem As SqlError
Dim errString As String =""
For Each errItem In ex.Errors
errString += ex.Message + ""
Next
MsgBox( "SQL错误.详细内容:"& errString)
'Return False
Catch myException As Exception
MsgBox("异常描述:"+ myException.ToString())
' Return False
End Try