我在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()
请帮忙!我只是不知道代码有什么问题。谢谢。
答案 0 :(得分:3)
您使用了" ExecuteReader"但实际上您的过程不会返回任何结果集。你应该使用" ExecuteNonQuery"。