【问题标题】:Update statement won't execute as expected更新语句不会按预期执行
【发布时间】:2015-08-20 03:21:31
【问题描述】:

只是寻找我的更新语句无法按预期执行的答案。我在 SQL Server 中创建了一个名为“Update_Employee”的存储过程,然后我在 VB.Net 中调用了该过程来更新记录。这是我到目前为止所做的:

VB.net

    Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("conEmployee").ConnectionString)
    Dim cmd As New SqlCommand

    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "Update_Employee"

    cmd.Parameters.AddWithValue("@empID", SqlDbType.Int).Value = lblIDNum.Text.Trim
    cmd.Parameters.AddWithValue("@empName", SqlDbType.VarChar).Value = txtName.Text.Trim
    cmd.Parameters.AddWithValue("@empAdd", SqlDbType.VarChar).Value = txtAddress.Text.Trim
    cmd.Parameters.AddWithValue("@empPhone", SqlDbType.VarChar).Value = txtPhone.Text.Trim
    cmd.Parameters.AddWithValue("@empEmail", SqlDbType.VarChar).Value = txtEmail.Text.Trim

    cmd.Connection = con

    Try
        con.Open()
        cmd.ExecuteNonQuery()
    Catch ex As Exception
        Throw ex
    Finally
        con.Close()
        con.Dispose()
    End Try

存储过程脚本:

USE [Company]
GO
/****** Object:  StoredProcedure [dbo].[Update_Employee]    Script Date: 08/20/2015 11:20:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Update_Employee]

  @empID int,
  @empName varchar(50),
  @empAdd varchar(50),
  @empPhone nchar(11),
  @empEmail varchar(50)
AS
BEGIN
      SET NOCOUNT ON;
      UPDATE  tbl_EMPLOYEE SET EMP_NAME = @empName, EMP_ADD = @empAdd, EMP_PHONE = @empPhone, EMP_EMAIL = @empEmail
      WHERE EMP_ID = @empID
END

【问题讨论】:

  • 请不要编码Catch ex As Exception Throw ex。那只会让你伤心。至于Try 块的其余部分,您应该改用Using
  • con.Open() 更改为cmd.Connection.Open()。在您的示例中,您先打开它。然后当你调用你的 executenonquery 时,它不会有一个打开的连接,因为它已经打开了......
  • 什么是不会按预期执行?不做任何改变?做出错误的改变?当您在调试中执行代码时,cmd.ExecuteNonQuery() 行是否运行?您确定表格和表格之间的empID 匹配吗?你确定你在正确的数据库中运行它吗?一个快速的方法是使用 SQL Profiler。
  • 嗨..我去修改源代码..但没有成功..上面发布的代码不会对数据库记录进行任何更改。
  • @cliecel john 显示您的连接字符串...

标签: asp.net vb.net


【解决方案1】:

您是否授予应用程序执行新 SP 的权限?

将 Update_Employee 上的执行权限授予(应用程序登录 ID)

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-10
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多