【发布时间】:2018-12-28 18:24:49
【问题描述】:
我的存储过程如下
ALTER PROCEDURE [dbo].[sp1]
@mat NVARCHAR(1000) = NULL,
@party NVARCHAR(1000) = NULL,
@place NVARCHAR(1000) = NULL,
@truk NVARCHAR(1000) = NULL,
@qty NUMERIC(10) = NULL,
@ptm NUMERIC(10) = NULL,
@mop NVARCHAR(100) = NULL,
@tos NVARCHAR(100) = NULL,
@driver NVARCHAR(100) = NULL,
@date1 DATE = NULL
AS
BEGIN
DECLARE @sql NVARCHAR(4000);
DECLARE @params NVARCHAR(4000);
DECLARE @rate NUMERIC(10);
SET @sql ='select @rate = ['+@mat+'] from tblcos'+ ' where [Name] = @party'
set @params = '@party nvarchar (1000), @rate NVARCHAR(10) OUTPUT'
exec sp_executesql @sql, @params,@party= @party,@rate = @rate OUTPUT
INSERT INTO tblsls([Party], [Place], [truk], [Material], [Qty], rate, [Amount], [Payment], [Balance], [MOP], [TOS], [driver], [Date])
SELECT
@party, @place, @truk, @mat, @rate, @qty, (@qty * @rate),
@ptm, (@qty * @rate - @ptm), @mop, @tos, @driver, @date1
END
我的aspx.cs 文件
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection (@"
Data Source = ABC - PC; Initial Catalog = VRA; Integrated Security = True");
SqlCommand cmd = new SqlCommand("sp1", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("Date", Calendar1.SelectedDate);
cmd.Parameters.AddWithValue("party", Ddprt.SelectedValue);
cmd.Parameters.AddWithValue("Place", tbpls.Text);
cmd.Parameters.AddWithValue("Truk", Tbtru.Text);
cmd.Parameters.AddWithValue("Material", Ddmat.SelectedValue);
cmd.Parameters.AddWithValue("Qty", Tbqty.Text);
**cmd.Parameters.AddWithValue("Rate", );**
**cmd.Parameters.AddWithValue("Amount", );**
cmd.Parameters.AddWithValue("Payment", Tbptm.Text);
**cmd.Parameters.AddWithValue("Balance", );**
cmd.Parameters.AddWithValue("MOP", Ddmop.SelectedValue);
cmd.Parameters.AddWithValue("TOS", Ddtos.SelectedValue);
cmd.Parameters.AddWithValue("driver", Tbdri.Text);
con.Open();
int k = cmd.ExecuteNonQuery();
if (k != 0)
{
Lbmsg.Text = "Record inserted successfully into the database";
Lbmsg.ForeColor = System.Drawing.Color.CornflowerBlue;
}
con.Close();
}
如何使Rate、Amount和Balance从存储过程sp1中取值并更新值?
【问题讨论】:
-
我不明白这个问题。当您说“......并更新价值”时,价值是什么?当你可以直接使用
SELECT值时,你为什么要使用sp_executesql? -
是的,我正在使用 sp_executesql ,让我知道如何直接取值
-
在存储过程中我提供 10 个参数的值,过程将更新 13 列的值,我也想在 asp.net Web 应用程序中做同样的事情
-
@VinayAparanji 然后从网络应用程序调用该过程..?就像你在做的那样……?
标签: c# asp.net stored-procedures sql-server-2012