使用 VB.NET 执行存储过程

2023-12-30

这是我的程序

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 与代码隐藏方法同步并将参数设置为 sp 即可。

Dim dt As New DataTable
    Dim sqlpr1 As New List(Of SqlParameter)

    Dim cmd As New SqlCommand()

    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "[sp_ItemPackingList]"
    cmd.Parameters.Add("@Date", SqlDbType.DateTime).Value = dateDate.Text.Trim()
    cmd.Parameters.Add("@Thk", SqlDbType.VarChar).Value = txtPendQty.Text.Trim()
    cmd.Parameters.Add("@Dia", SqlDbType.VarChar).Value = txtPendQty.Text.Trim()
    Try
        cmd.ExecuteNonQuery()
        lblMessage.Text = "Record inserted successfully"
    Catch ex As Exception
        Throw ex
        obj.GetDataTable("[sp_ItemPackingList]", sqlpr1)

    End Try
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 VB.NET 执行存储过程 的相关文章

  • 从表中删除孤儿

    我正在尝试清理一张有很多孤立项目的桌子 我通过查找空值来检查是否与另一个表存在关系来解决此问题 DELETE FROM table1 LEFT JOIN table2 ON table1 ID table2 ID WHERE table2
  • MySQL 存储过程将值分配给 select 语句中的多个变量

    这是我的存储过程 我在为声明的变量赋值时遇到问题 当我执行它时 插入和更新命令工作正常 但声明变量的值保持为 0 但我在数据库中有一些价值 我怎样才能正确地做到这一点 BEGIN DECLARE PaidFee INT DEFAULT 0
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO
  • 重命名重复行

    这是我的问题的一个简化示例 我有一个表 其中有一个包含重复条目的 名称 列 ID Name 1 AAA 2 AAA 3 AAA 4 BBB 5 CCC 6 CCC 7 DDD 8 DDD 9 DDD 10 DDD 进行 GROUP BY 操
  • 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

    我目前的观点是否定的 更喜欢 Transact SQL 存储过程 因为它们是重量更轻且 可能 性能更高的选项 而 CLR 过程允许开发人员进行各种恶作剧 然而最近我需要调试一些写得非常糟糕的 TSQL 存储过程 像往常一样 我发现许多问题是
  • 如何在vb.net中对datagridview的3列进行排序

    下面我想对 ProductCode ColorCode 和 Size 列进行排序 请指导 对 大小 列中的信息进行排序 Size Number sequence XS 1 S 2 M 3 L 4 XL 5 XXL 6 2L 7 3L 8 4
  • 如何跨多个表强制执行 CHECK 约束

    我有一个在 Microsoft SQL Server 2012 Express 中记录奶牛繁殖信息的数据库 显然 一头牛只有在出生后才能配种 并且在其一生中可能会配种多次 我需要在我的数据库中强制执行这些约束 我目前已经根据下图安排了一个架
  • 如何从 SQL Server 存储过程返回值并在 Access VBA 中使用它们

    我已经在 SQL Server 中设置了一个运行良好的存储过程 我现在可以从 VBA 调用它 但想返回一个值以了解是否存在任何错误等 我的 SP 中的最后一个参数设置为 OUTPUT DataSetID int 0 Destination
  • SQL中的NULL和编程语言中的NULL之间的区别

    我刚刚遇到一个关于如何在 T SQL 可能还有其他形式的 SQL 中处理 NULL 的有趣场景 这个问题得到了很好的描述和回答这个问题 https stackoverflow com questions 2866714 how does a
  • WithEvents(句柄)与 AddHandler 之间的区别

    我搜索了关键字使用的差异Handles http msdn microsoft com en us library 6k46st1y aspx代替添加处理程序 http msdn microsoft com en us library 7t
  • SQL Server:从 OPENDATASOURCE 中删除

    这有效 SELECT FROM OPENDATASOURCE Microsoft ACE OLEDB 12 0 Data Source d JobFiles MyFile xlsx Extended properties Excel 8 0
  • 如何将 Datagridview 中的格式列更改为该值的日期类型

    例如 我有这样的值 41607 2069444444 41607 2068402778 41607 2072222222 这是来自 CDR 的 dateTimeOrigination 计算 在 Excel 中 我将格式单元格更改为日期类型
  • 在 VB.NET 中 a = b = 5 - 不可能吗?

    VB NET 中可以这样做吗a b 5 我知道 也是比较运算符 我的意思是做not结果 例如 如果 b 2 a false b 2 然而 在下面的情况下该怎么做呢 不方便在我的代码中引起了这个问题 一些对象a b z由方法中的 ref 传递
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 数字表与递归 CTE 生成一系列数字

    为什么使用数字表比使用递归 CTE 动态生成它们要快得多 在我的机器上 给定一张桌子numbers单列n 主键 包含从1到100000的数字 查询如下 select n from numbers 大约需要 400 毫秒才能完成 使用递归 C
  • 在 VB.Net 中将字节数组转换为整数

    我想知道在 vb net 中将字节数组 长度 4 转换为整数的最佳方法是什么 我知道 BitConverter 但执行函数调用来执行应该可以通过复制 4 字节内存来完成的操作似乎相当浪费 同样 将单 双精度数从二进制表示形式转换为单 双精度
  • 确定哪个进程锁定了文件

    我有一个在本地运行良好的单元测试 但上传到 TeamCity 构建服务器时失败 并显示 该进程无法访问该文件 因为它正在被另一个进程使用 在我在测试中做任何事情之前 我检查设置是否有文件 存在 如果存在尝试删除它 这会失败并出现相同的错误
  • 循环预定义值

    有没有办法在 oracle 中执行 for every 如下所示 begin for VAR in 1 2 5 loop dbms output put line The value VAR end loop end 我知道你可以这样做 b

随机推荐