asp.net c#存储过程,当传递参数时,它不起作用,只是对第31行的值进行原始编码,有什么解决方案吗? 使用系统; 使用系统数据; 使用System.Data.SqlClient; 类StoredProcDemo { 静态void Main() { S

asp.net c#存储过程,当传递参数时,它不起作用,只是对第31行的值进行原始编码,有什么解决方案吗? 使用系统; 使用系统数据; 使用System.Data.SqlClient; 类StoredProcDemo { 静态void Main() { S,c#,asp.net,stored-procedures,C#,Asp.net,Stored Procedures,asp.net c#存储过程,当传递参数时,它不起作用,只是对第31行的值进行原始编码,有什么解决方案吗? 使用系统; 使用系统数据; 使用System.Data.SqlClient; 类StoredProcDemo { 静态void Main() { StoredProcDemo spd=新的StoredProcDemo(); //运行一个简单的存储过程 spd.RunStoredProc(); //运行接受参数的存储过程 spd.RunStoredProcParams(); } //运行一个

asp.net c#存储过程,当传递参数时,它不起作用,只是对第31行的值进行原始编码,有什么解决方案吗?
使用系统;
使用系统数据;
使用System.Data.SqlClient;
类StoredProcDemo
{
静态void Main()
{
StoredProcDemo spd=新的StoredProcDemo();
//运行一个简单的存储过程
spd.RunStoredProc();
//运行接受参数的存储过程
spd.RunStoredProcParams();
}
//运行一个简单的存储过程
public void RunStoredProc()
{
SqlConnection-conn=null;
SqlDataReader rdr=null;
Console.WriteLine(“\n前10种最昂贵的产品:\n”);
尝试
{
//创建并打开连接对象
康涅狄格州=新
SqlConnection(“服务器=(本地);数据库=北风;集成安全=SSPI”);
conn.Open();
//1.创建一个命令对象,用于标识
//存储过程
SqlCommand cmd=新的SqlCommand(
“十大最贵产品”,康涅狄格州);
//2.设置命令对象,使其知道
//执行存储过程
cmd.CommandType=CommandType.storedProcess;
//执行命令
rdr=cmd.ExecuteReader();
//迭代结果,将每个结果打印到控制台
while(rdr.Read())
{
控制台写入线(
“产品:{0,-25}价格:${1,6:#####.00}”,
rdr[“TenMostExpensiveProducts”],
rdr[“单价]);
}
}
最后
{
如果(conn!=null)
{
康涅狄格州关闭();
}
如果(rdr!=null)
{
rdr.Close();
}
}
}
//运行接受参数的存储过程
public void RunStoredProcParams()
{
SqlConnection-conn=null;
SqlDataReader rdr=null;
//通常从用户处获得
//输入,但我们走捷径
字符串custId=“FURIB”;
Console.WriteLine(“\n客户订单历史记录:\n”);
尝试
{
//创建并打开连接对象
康涅狄格州=新
SqlConnection(“服务器=(本地);数据库=北风;集成安全=SSPI”);
conn.Open();
//1.创建一个命令对象,用于标识
//存储过程
SqlCommand cmd=新的SqlCommand(
康涅狄格州“客户订单记录员”;
//2.设置命令对象,使其知道
//执行存储过程
cmd.CommandType=CommandType.storedProcess;
//3.在命令中添加参数,该参数
//将传递给存储过程
cmd.Parameters.Add(
新的SqlParameter(“@CustomerID”,custId));
//执行命令
rdr=cmd.ExecuteReader();
//迭代结果,将每个结果打印到控制台
while(rdr.Read())
{
控制台写入线(
“产品:{0,-35}总计:{1,2}”,
rdr[“产品名称”],
rdr[“总计]);
}
}
最后
{
如果(conn!=null)
{
康涅狄格州关闭();
}
如果(rdr!=null)
{
rdr.Close();
}
}   
}
}

请解释您的答案。这将有助于OP。您在尝试传递值时做了什么?您有哪些可用的变量?价值从何而来?“不工作”是什么意思?您是否收到错误或意外结果?command.Parameters.AddWithValue(“@cartid”,3);我硬编码了值3,它是我的购物车表的id。我使用的是一个存储过程,我希望它是动态的,我在数据库中有几个值,但是对于id 3,我只得到1,我不知道如何得到它们,其他代码不起作用。
    protected void Getbooks()
    {
                    SqlConnection con = new SqlConnection(strConnString);
        con.Open();
         //call shopping cart procedure
        SqlCommand command = new SqlCommand("ShoppingCartGetItems", con);

        //How To pass value here instead of raw coding value if cartid 3?
        command.Parameters.AddWithValue("@cartid", 3);


        command.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter(command);
        DataTable dt = new DataTable();
        da.Fill(dt);

        gridcart.DataSourceID = null;
        gridcart.DataSource = dt;
        gridcart.DataBind();
    }