vb.net 向存储过程发送参数

2024-03-23

你好,这是我在 vb.net 中使用 ms Visual Studio 2010 的第一个项目,我想创建一个可以将参数发送到 transact-sql 数据库中的存储过程的类,我知道如何在 vb 6 中执行此操作,但我不会确定这是否是在这里执行此操作的正确方法。

Imports System.Data.SqlClient

Public Class ClsLineas

Public Sub Inserta(ByVal GridLineas As DataGrid, _
                   ByVal numero As String, _
                   ByVal tipo As String, _
                   ByVal estado As String, _
                   ByVal anexo As Integer, _
                   ByVal fechaInicio As String, _
                   ByVal fechaFin As String, _
                   ByVal pcReg As String, _
                   ByVal observaciones As String, _
                   ByVal usuReg As String)

    Dim cnx As SqlConnection = New SqlConnection(ClsCon.connectionString)
    'ClsCon.connectionString is a class that contains the connection string 
    Dim cmd As SqlCommand = New SqlCommand()

    If cnx.State = ConnectionState.Closed Then cnx.Open()

    cmd.Connection = cnx
    cmd.CommandText = "SP_INSERTA_LINEA"
    cmd.CommandType = CommandType.StoredProcedure

    Dim prm As New SqlParameter

    prm.ParameterName = "@TIPO"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 30
    prm.Direction = ParameterDirection.Input
    prm.Value = tipo
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@FECHA_INICIO"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 30
    prm.Direction = ParameterDirection.Input
    prm.Value = fechaInicio
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@FECHA_FIN"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 30
    prm.Direction = ParameterDirection.Input
    prm.Value = fechaFin
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@ESTADO"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 30
    prm.Direction = ParameterDirection.Input
    prm.Value = estado
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@NUMERO"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 15
    prm.Direction = ParameterDirection.Input
    prm.Value = numero
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@ANEXO"
    prm.SqlDbType = SqlDbType.Int
    prm.Direction = ParameterDirection.Input
    prm.Value = anexo
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@PC_REG"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 50
    prm.Direction = ParameterDirection.Input
    prm.Value = pcReg
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@USU_REG"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 50
    prm.Direction = ParameterDirection.Input
    prm.Value = usuReg
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@OBSERVACIONES"
    prm.SqlDbType = SqlDbType.NVarChar
    prm.Size = 1000
    prm.Direction = ParameterDirection.Input
    prm.Value = observaciones
    cmd.Parameters.Add(prm)

    prm.ParameterName = "@ID"
    prm.SqlDbType = SqlDbType.Int
    prm.Direction = ParameterDirection.Output
    cmd.Parameters.Add(prm)

    Dim adp As SqlDataAdapter = New SqlDataAdapter(cmd)

    Dim DataSet As DataSet = New DataSet("Lineas")

    adp.Fill(DataSet)
    GridLineas.DataSource = DataSet.Tables(0)

End Sub
End class

我的一些疑问是:

每次调用类的方法时我真的需要打开数据库吗?

sqlAdapter 和 Dataset 真的需要吗?在 vb 6 中,您可以在附加参数后执行类似“命令执行 inserta”的操作,然后就完成了。


如果您只是读取数据,请检查 SqlDataReader:

Dim reader As SqlDataReader
reader = cmd.ExecuteReader()
While reader.Read
    //Do stuff with reader
End While

如果您正在进行更新或插入,则可以使用 SqlCommand 类的 ExecuteNonQuery() 方法。

SqlCommand 有一个添加参数的简写:

cmd.Parameters.AddWithValue("@MyParamName", myParamValue)

您可能会发现这很有用。

是的,每次需要与数据库交互时,您都应该打开和关闭数据库连接。仔细阅读Using 语句,这将帮助您巧妙而巧妙地完成此操作。

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

vb.net 向存储过程发送参数 的相关文章

  • Docker连接SQL Server容器非零代码:1

    我正在尝试从创建一个 SQL Server 容器docker compose yml但是当我运行它时 它直接停止并出现一些错误 注意 它运行在带有 docker Preview 的 Apple M1 芯片上 docker compose y
  • 使用 Python 中的 SQL Server 存储过程 (pyodbc)

    我有一个存储过程 代码 DECLARE RC int DECLARE id varchar 13 DECLARE pw varchar 13 DECLARE depart varchar 32 DECLARE class varchar 1
  • 设置 xact_abort 并尝试一起捕获

    我的 sp 中有一个 try catch 块 其中只有一条插入语句 catch 检查错误代码是否违反 pk 如果是则进行更新 但有时我得到 当前事务无法提交 并且无法支持写入日志文件的操作 回滚事务 在批处理结束时检测到不可提交的事务 事务
  • 获取家庭成员

    假设以下家庭 其构建架构是 create table PersonConn child int parent int insert into PersonConn values 1 2 insert into PersonConn valu
  • Scrapy - 如何抓取网站并将数据存储在 Microsoft SQL Server 数据库中?

    我正在尝试从我们公司创建的网站中提取内容 我在 MSSQL Server 中为 Scrapy 数据创建了一个表 我还设置了 Scrapy 并配置了 Python 来抓取和提取网页数据 我的问题是 如何将Scrapy爬取的数据导出到我本地的M
  • 在 SQL Server 中处理日期

    我正在开发一个 ASP NET 网站 我从网页获取日期 然后根据用户输入我想从 SQL Server 数据库获取结果 使用存储过程 问题是我只能从用户界面获取这种格式的日期2016 10 08这是字符串类型 但在数据库中 我有一个类型为da
  • SQL 删除表并重新创建并保留数据

    在我们最初的设计中 我们搞砸了表中的外键约束 现在表已充满数据 我们无法在不删除表中所有记录的情况下更改它 我能想到的唯一解决方案是创建一个备份表并将所有记录放在那里 然后删除所有记录 更改表并开始将它们添加回来 还有其他 更好 的想法吗
  • 随机数但不重复

    我想生成一个小于 50 的随机数 但一旦生成该数字 我希望它不能再次生成 谢谢您的帮助 请参见 费舍尔 耶茨洗牌 http en wikipedia org wiki Fisher E2 80 93Yates shuffle public
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • 将 PDF 嵌入到 WPF 应用程序中

    我正在尝试在 WPF 应用程序中嵌入 显示 PDF 到目前为止 我已经尝试过这些解决方案 但没有成功 在 a 中显示 PDFWindowsFormsHost主持一个AxAcroPdf控制 类似于显示的内容here http hugeonio
  • 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?

    我有一个关于从 C 代码将 xml 数据类型传递给查询的问题 首先 这是 SQL Server 上的一个表 CREATE TABLE dbo XmlTable id int IDENTITY 1 1 NOT NULL dat xml NOT
  • 单独的逗号分隔值并存储在sql server的表中

    我有一个存储过程 它将逗号分隔的值作为输入 我需要将其分开并需要将其作为单独的行存储在表中 令 SP 的输入为 Rule ID ListType ID Values 1 2 319 400 521 8465 2013 我需要将它存储在一个名
  • 实体框架 - SQL Server 2005 - IIS 服务器日期时间问题

    我正在使用 MVC3 和实体框架 在我的应用程序中 我需要通过 EF 调用 SQL Server 2005 中的存储过程来根据以下内容搜索一些数据datetime传递的参数 在当地环境中一切似乎都运行良好 但是将其托管到 IIS 后 我在尝
  • SQL Server 列名区分大小写

    我使用的数据库具有 French CI AS 排序规则 CI 应该代表不区分大小写 但无论如何都是区分大小写的 我试图理解为什么 我断言这一点的原因是 使用 GIVEN 案例设置进行批量插入失败 但使用另一个 Given 案例设置则成功 例
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • VB.NET 中的模块变量何时实例化?

    我想知道在程序的生命周期中 模块中的变量将被初始化 如下例所示 Module Helper Friend m Settings As New UserSettings Sub Foo End Sub Sub Bar End Sub End
  • 在 String.Format 中插入格式化字符?

    我用谷歌搜索了这个 但 VB Net 2008 似乎不允许在 String Format 中插入格式化字符 例如 t r n BAD MessageBox Show String Format 0 tab 1 Foo Bar BAD Mes
  • UDP SocketException - 通常只允许每个套接字地址使用一次

    尽管这里有很多非常相似的问题 但提供的答案都没有帮助我 这让我很难过 我有一个非常大的管理系统 我的任务是为其编写一些 UDP 数据包发送 接收 我已经编写了一个原型 一切都很好 所以我开始将我的代码合并到所述系统中 然而 我现在弹出了一个
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • VB6+SQL-Server:如何使用 ADODB.Command 执行带有命名参数的查询?

    我一直在尝试使用 ADODB Command 执行参数化查询 我知道我可以使用 对于参数 但我的查询相当大 我真的不想跟踪参数的确切顺序 我尝试了类似以下的操作 objCmd CommandType adCmdText objCmd Com

随机推荐

  • protobuf 取出部分数据的安全性如何?

    在没有任何加密的情况下 如果接收者拥有序列化的 Protobuf 文件 但没有生成的 Protobuf 类 他们无权访问定义其结构的 proto 文件 他们是否有可能获取 Protobuf 中的任何数据来自二进制文件 如果他们有权访问 pr
  • CFBundleVersion 必须高于以前的版本

    我正在提交我的一个应用程序的更新 我已经用我开发的许多不同的应用程序完成了数十次这样的操作 但是这个应用程序由于某种奇怪的原因而失败了 我存档我的应 用程序 然后尝试验证存档并收到以下错误消息 该捆绑包无效 Info plist 文件中的关
  • 在 python 中生成非子进程

    我需要在 python 中创建一个进程 允许调用进程在子进程仍在运行时退出 什么是有效的方法来做到这一点 注意 我在 UNIX 环境上运行 在类 Unix 操作系统中 终止父进程不会终止子进程 因此您不需要执行任何特殊操作 只需启动你的子流
  • React'findNodeHandle 方法停止工作

    升级到后0 26 0 rc版本 这一行 React findNodeHandle this refs myRef 抛出此错误消息 未处理的 JS 异常 react2 default findNodeHandle 不是 功能 我用这个导入 R
  • 在父类中访问子类变量

    在父类中访问子类的变量是否正确 这是一种好的 OOP 方法吗 我不需要创建 Animal 类的实例 但如果我愿意的话 make sound方法会提高AttributeError 这让我很困扰 class Animal def make so
  • Spring Boot thymeleaf 图像

    我正在尝试开发用于发送电子邮件的 Spring Boot 应用程序 一切都很好 但是在模板 thymeleaf 中 当我尝试添加图像时 它显示错误 这是我的 template html 的一个片段 div h2 title h2 div
  • 以当前区域设置和货币设置价格格式

    I use product gt getPrice 获得未格式化的价格 我可以用ajax计算 数量X价格 我想以当前区域设置和货币重新格式化总计 我怎样才能做到这一点 我认为谷歌可以回答你的问题 看看http blog chapagain
  • 如何找到 numpy 数组列中的最大值?

    我可以找到这个问题的很多排列 但不是这个 相当简单 如何找到 numpy 数组的特定列的最大值 以最Pythonic的方式 a array 10 2 3 4 5 6 我想要的是第一列和第二列中的最大值 这些是x y坐标 我最终需要每个形状的
  • 滚动连接:向前和向后滚动

    data table太棒了 因为我可以做滚动连接 甚至可以做滚动连接组内 library data table set seed 42 metrics lt data frame ID c rep 1 10 rep 2 5 rep 3 5
  • 使用自定义对象建议创建 GWT SuggestOracle

    我正在尝试将下拉框小部件转换为 SuggestionBox 因为当前的下拉菜单有 100 多个选项 不过 您似乎只能将字符串建议添加到 SuggestOracle 中 我需要能够添加一个自定义对象 其中包含与数据库中的记录匹配的描述和 ID
  • 使用 Jackson 进行非对称序列化和反序列化

    我正在使用 Jackson 来序列化和反序列化 RESTful API 的数据 我想要一个 REST 资源 comments 允许发布评论以及获取评论列表 这是发布内容的 简化的 示例 comments text Text author P
  • C# WPF ListBox 复选框绑定 IsChecked 到字段并 IsSelected?

    我试图将复选框绑定到字段 但也触发复选框的 IsSelected 这是与数据绑定一起使用的列表框设置
  • 如何使用 Bootstrap 将按钮对齐到中心

    我使用 Bootstrap 创建了一个图块 在图块内部 靠近底部 我想要图块的三个按钮 开始 中间和结束 我制作了开始和结束按钮 但使用了两个div标签有pull left and pull right类 现在我想要的是放置中间按钮 这是我
  • browserify 和因子捆绑依赖 ID

    我正在使用 browserify 和 Factor bundle 来管理依赖项 理论上它应该工作得很好 我们在页面上有不同的端点 并且可以非常快速有效地运行因子包分割以进行缓存 问题是我遇到了这个问题 https github com su
  • React 在渲染之前在服务器中获取数据

    我是reactjs新手 我想在服务器中获取数据 以便它将包含数据的页面发送到客户端 当函数 getDefaultProps 返回像这样的虚拟数据 data books 时就可以了 但是不适用于下面的代码 代码按此顺序执行 并显示错误消息 无
  • ERD - 如何使用第三个实体作为“属性”来建模两个实体之间的关系

    我正在对实体关系图进行建模并陷入困境 我不确定我的考虑是否错误 或者 ERD 无法模拟我想要的内容 我有三个实体 员工 项目和角色 员工和项目之间存在关系 员工正在从事项目 但该员工不仅仅在这个项目上工作 他 她还有一个作为角色指定的操作领
  • 带有外键的 Django 表单

    我有一个用户可以拥有多本书的场景 我可以为用户和书籍创建两个不同的模型 并使用外键将它们关联起来 或者一对多是正确的方式 我已经为用户模型创建了一个 django 表单 但是当我这样做时 form as p 在模板中 仅显示用户模型字段 而
  • 如何在android中将 2021-07-06T19:27:46.811+0530 格式转换为 d MMM yyyy, hh:mm aaa 这种格式

    2021 07 06T19 27 46 811 0530 gt 当前值作为字符串 我想转换为 05 07 2021 06 45 am 这种格式 提前致谢 Use java time import java time OffsetDateTi
  • 获取 PostgreSQL 中今天生日的所有条目

    我有以下查询 我需要实现一个需要发送给今天生日的所有客户的邮件程序 这种情况每天都会发生 现在我需要实现的只是使用 Postgres SQL 查询选择生日客户端 而不是在 PHP 中过滤它们 数据库中存储的日期格式为 YYYY MM DD
  • vb.net 向存储过程发送参数

    你好 这是我在 vb net 中使用 ms Visual Studio 2010 的第一个项目 我想创建一个可以将参数发送到 transact sql 数据库中的存储过程的类 我知道如何在 vb 6 中执行此操作 但我不会确定这是否是在这里