0

我在 sql server 中创建了一个存储过程;我试图在 vb.net 中执行,但由于某些原因它不起作用。任何人都可以帮忙吗?

这是我创建的程序;在 sql server 中运行良好:

CREATE PROCEDURE PRC_CUS_ADD 
(@CATEGORY_NAME Varchar(30), @BRAND_NAME Varchar(30), @PRODUCT_DETAIL Varchar(30), @SALE_QUANTITY Numeric(9,2), @SALE_PRICE Numeric(9,2), @SALE_TOTAL_PRICE Numeric(9,2), @SALE_DATE datetime, @CUSTOMER_ID int, @PRODUCT_ID int, @CREDIT_PAYMENT bit)
AS
BEGIN
INSERT INTO SALE(SALE_ID, CATEGORY_NAME, BRAND_NAME, PRODUCT_DETAIL, SALE_QUANTITY, SALE_PRICE, SALE_TOTAL_PRICE, SALE_DATE, CUSTOMER_ID, PRODUCT_ID, CREDIT_PAYMENT) VALUES (NEXT VALUE FOR SALE_Sequence, @CATEGORY_NAME, @BRAND_NAME, @PRODUCT_DETAIL, @SALE_QUANTITY, @SALE_PRICE, @SALE_TOTAL_PRICE, @SALE_DATE, @CUSTOMER_ID, @PRODUCT_ID, @CREDIT_PAYMENT)
END;

这是我为在 VB.net 中执行该过程而编写的代码:

        Dim cn As New SqlConnection("")
        Dim cmd As New SqlCommand
        Dim dr As SqlDataReader
        cmd.Connection = cn

        cn.Open()
        Dim cmd As SqlCommand = New SqlCommand("PRC_CUS_ADD", cn)
        cmd.CommandType = CommandType.StoredProcedure

        cmd.Parameters.Add("@CATEGORY_NAME", SqlDbType.VarChar).Value = ComboBox1.Text
        cmd.Parameters.Add("@BRAND_NAME", SqlDbType.VarChar).Value = ComboBox2.Text
        cmd.Parameters.Add("@PRODUCT_DETAIL", SqlDbType.VarChar).Value = ComboBox3.Text
        cmd.Parameters.Add("@SALE_QUANTITY", SqlDbType.Decimal).Value =txtQUANTITY.Text
        cmd.Parameters.Add("@SALE_PRICE", SqlDbType.Decimal).Value = txtPRICE.Text
        cmd.Parameters.Add("@SALE_TOTAL_PRICE", SqlDbType.Decimal).Value =txtTOTAL.Text
        cmd.Parameters.Add("@ALE_DATE", SqlDbType.Date).Value = dtp.Value
        cmd.Parameters.Add("@CUSTOMER_ID", SqlDbType.Int).Value = txtCustomerId.Text
        cmd.Parameters.Add("@PRODUCT_ID", SqlDbType.Int).Value = txtPRODUCT.Text
        cmd.Parameters.Add("@CREDIT_PAYMENT", SqlDbType.Bit).Value = credit.CheckState

        dr = cmd.ExecuteReader()
        cn.Close()

请帮忙!我只是不知道代码有什么问题。谢谢你。

4

1 回答 1

3

您使用了“ExecuteReader”,但实际上您的过程不返回任何结果集。您应该使用“ExecuteNonQuery”。

于 2013-06-10T16:34:46.453 回答