【发布时间】:2011-12-29 04:17:07
【问题描述】:
这是我的程序
ALTER PROCEDURE sp_addUser
@UserName nvarchar(50),
@Prenom nvarchar(50),
@Nom nvarchar(50),
@Mail nvarchar(50),
@Password char(8),
@Addresse nvarchar(100),
@Ville nvarchar(50),
@Province nvarchar(50),
@PostalCode char(6),
@Pays nvarchar(50),
@AnimalGenre nvarchar(50),
@NomAnimal nvarchar(50),
@Race nvarchar(50)
AS
BEGIN
INSERT INTO Client
VALUES (@UserName,@Prenom,@Nom,@Mail,@Password,@Addresse,@Ville,@Province,@PostalCode,@Pays,@AnimalGenre,@NomAnimal,@Race);
END
我认为这对于存储过程来说还可以
现在是在数据库中添加值的代码
Sub sp_addUser()
Dim intRowsAff As Integer
lblErrMsg.Text = ""
lblRecsAff.Text = ""
Dim connectionString As String = WebConfigurationManager.ConnectionStrings("BecsEtMuseauxSQL").ConnectionString
Dim con As SqlConnection = New SqlConnection(connectionString)
Dim cmd As New SqlCommand("sp_addUser", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50).Value = txtUserName.Text
cmd.Parameters.Add("@Prenom", SqlDbType.VarChar, 50).Value = txtPrenom.Text
cmd.Parameters.Add("@Nom", SqlDbType.NVarChar, 50).Value = txtNom.Text
cmd.Parameters.Add("@Mail", SqlDbType.NVarChar, 50).Value = txtMail.Text
cmd.Parameters.Add("@Password", SqlDbType.Char, 8).Value = txtPass.Text
cmd.Parameters.Add("@Addresse", SqlDbType.NVarChar, 100).Value = txtAdresse.Text
cmd.Parameters.Add("@Ville", SqlDbType.NVarChar, 50).Value = txtVille.Text
cmd.Parameters.Add("@Province", SqlDbType.NVarChar, 50).Value = txtProvince.Text
cmd.Parameters.Add("@PostalCode", SqlDbType.Char, 6).Value = txtPostal.Text
cmd.Parameters.Add("@Pays", SqlDbType.NVarChar, 50).Value = txtPays.Text
cmd.Parameters.Add("@AnimalGenre", SqlDbType.NVarChar, 50).Value = rblAnimal.Text
cmd.Parameters.Add("@NomAnimal", SqlDbType.NVarChar, 50).Value = txtAnimal.Text
cmd.Parameters.Add("@Race", SqlDbType.NVarChar, 50).Value = txtRace.Text
Try
cmd.Connection.Open()
intRowsAff = cmd.ExecuteNonQuery()
Catch ex As Exception
lblErrMsg.Text = ex.Message & ex.Source
End Try
lblRecsAff.Text = intRowsAff & " record(s) inserted"
cmd.Connection.Close()
End Sub
在我执行方法后 VS 说我必须为过程 sp_addUser 指定很多参数
我不明白为什么会产生错误!
【问题讨论】:
-
您还记得更新数据库中的存储过程定义吗?
-
更新存储过程定义是什么意思??
-
我将我的 SP 重命名为 spAddUser 并重新启动 VS,现在可以正常工作了谢谢
-
绝对零需要将其作为存储过程。回到我们没有参数化查询的那一天,是的,但今天它只是一种浪费。它在创建和维护一些没有用处的东西上花费了大量时间。
-
@Dan-o,它与回答 OP 问题无关,而且可以说恰恰相反。我没有在我的代码中添加内联 SQL,因为如果需要更改数据,我可以轻松更新存储过程并完成工作。
标签: vb.net tsql stored-procedures ado.net sql-insert