当前位置:文档之家› SQL数据库存储过程问题

SQL数据库存储过程问题

SQL数据库存储过程问题
SQL数据库存储过程问题

问题:存储过程解析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

相关主题
文本预览
相关文档 最新文档