我的asp代码存储过程有问题吗? [英] i have problem in my asp code with stored procedures?
本文介绍了我的asp代码存储过程有问题吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有问题我为我的表制作存储过程我希望从我的页面添加项目
i have problem i make stored procedures for my table i want add items form my page
ALTER PROCEDURE [dbo].[AddProduct] (
@Title nvarchar(255) , @Description nvarchar(max) ,@Price Decimal(12,3),
@Quantity int ,@Status int ,
@CreateDate datetime )
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
insert into Products select @Title,@Description,@Price,@Quantity,@Status,@CreateDate
END
当我运行我的页面时我有错误告诉我@title预计
我的代码
put when i run my page i have error tell me @title expected
my code
public class Products
{
//filed & property
private SqlConnection conn;
public int ProductID { get; set; }
public string Title { get; set; }
public string PDescription { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public int PStatus { get; set; }
public DateTime CreateDate { get; set; }
// construcor
public Products() { }
// method
public void GetConnection()
{
conn = new SqlConnection(DBCONN.constr);
try
{
conn.Open();
}
catch { }
}
public void Add()
{
GetConnection();
SqlCommand cmd= new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "AddProduct";
cmd.Connection = conn;
SqlParameter p1 = new SqlParameter();
p1.ParameterName = "@Title";
p1.Value = Title;
SqlParameter p2 = new SqlParameter();
p1.ParameterName = "@Description";
p1.Value = PDescription;
SqlParameter p3 = new SqlParameter();
p1.ParameterName = "@Price";
p1.Value = Price;
SqlParameter p4 = new SqlParameter();
p1.ParameterName = "@Quantity";
p1.Value = Quantity;
SqlParameter p5 = new SqlParameter();
p1.ParameterName = "@Status";
p1.Value = PStatus;
SqlParameter p6 = new SqlParameter();
p1.ParameterName = "@CreateDate";
p1.Value = CreateDate;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p5);
cmd.Parameters.Add(p6);
cmd.ExecuteNonQuery();
conn.Close();
}
}
可以帮助我?
can help me?
推荐答案
更改此
change this
insert into Products select @Title,@Description,@Price,@Quantity,@Status,@CreateDate
到此
to this
insert into Products values(@Title,@Description,@Price,@Quantity,@Status,@CreateDate)
你好我认为你有将Add()方法更改为... as
public void Add()
{
GetConnection();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText =AddProduct;
cmd.Connection = conn;
SqlParameter p1 = new SqlParameter();
p1.ParameterName =@Title;
p1.Value = Title;
SqlParameter p2 = new SqlParameter();
p2.ParameterName =@ Description;
p2.Value = PDescription;
SqlParameter p3 = new SqlParameter();
p3.ParameterName =@ Price;
p3.Value =价格;
SqlParameter p4 =新的SqlParameter();
p4.ParameterName =@Quantity;
p4.Value =数量;
SqlParameter p5 = new SqlParameter();
p5.ParameterName =@Status;
p5.Value = PStatus;
SqlParameter p6 = new SqlParameter();
p6.ParameterName = @CreateDate;
p6.Value = CreateDate;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3) ;
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p5);
cmd.Parameters.Add(p6);
cmd.ExecuteNonQuery();
conn.Close();
}
please如果有帮助你回复
Hello i think you have to change your Add() method to ... as
public void Add()
{
GetConnection();
SqlCommand cmd= new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "AddProduct";
cmd.Connection = conn;
SqlParameter p1 = new SqlParameter();
p1.ParameterName = "@Title";
p1.Value = Title;
SqlParameter p2 = new SqlParameter();
p2.ParameterName = "@Description";
p2.Value = PDescription;
SqlParameter p3 = new SqlParameter();
p3.ParameterName = "@Price";
p3.Value = Price;
SqlParameter p4 = new SqlParameter();
p4.ParameterName = "@Quantity";
p4.Value = Quantity;
SqlParameter p5 = new SqlParameter();
p5.ParameterName = "@Status";
p5.Value = PStatus;
SqlParameter p6 = new SqlParameter();
p6.ParameterName = "@CreateDate";
p6.Value = CreateDate;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p5);
cmd.Parameters.Add(p6);
cmd.ExecuteNonQuery();
conn.Close();
}
please reply if it helps you
p1.Value = Title;//null
您将空值传递给Title,在调用存储过程之前验证它
建议:
You are passing null value to the Title, validate it before calling the Stored Procedure
Suggestion:
p1.Value = string.IsNullOrEmpty(Title) ? "Default Title" : Title;
这篇关于我的asp代码存储过程有问题吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文