C# 我想将SqlParameter列表传递给一个函数,该函数在C中执行存储过程#
我想将两个值,比如C# 我想将SqlParameter列表传递给一个函数,该函数在C中执行存储过程#,c#,asp.net,lis,C#,Asp.net,Lis,我想将两个值,比如@name和@pwd保存到一个表中,为此,我可以在aspx页面中使用以下代码 public void save1() { try { using (SqlConnection con=new SqlConnection(ConfigurationManager.ConnectionStrings["myCon"].ConnectionString)) { using(SqlCommand cmd = new
@name
和@pwd
保存到一个表中,为此,我可以在aspx页面中使用以下代码
public void save1()
{
try
{
using (SqlConnection con=new SqlConnection(ConfigurationManager.ConnectionStrings["myCon"].ConnectionString))
{
using(SqlCommand cmd = new SqlCommand("SP_TEST",con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@name", txtUname.Text);
cmd.Parameters.Add("@pwd", txtPwd.Text);
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{ }
}
但我想将这两个变量作为单个列表变量作为
List<SqlParameter> param = new List<SqlParameter>();
param.Add(new SqlParameter("@name", uname));
param.Add(new SqlParameter("@pwd", pwd));
到
public void save1(列表参数)
但我的问题是我不知道如何从这个param
中提取这两个变量,然后将它们添加到cmd
变量中。我需要您的帮助。您可以使用for循环访问列表中的每个参数
对于(有趣的i=0,i }如果你知道只有两个参数,你可以使用这个
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(param[0]);
cmd.Parameters.Add(param[1]);
cmd.ExecuteNonQuery();
让您的保存功能如下所示:
public void Save1(List<SqlParameter> param)
{
try
{
using (SqlConnection con = new SqlConnection(ConfigurationManager
.ConnectionStrings["myCon"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("SP_TEST", con))
{
cmd.CommandType = CommandType.StoredProcedure;
foreach (var item in param)
cmd.Parameters.Add(item);
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
/*...*/
}
}
听起来像是一项查找foreach
循环的工作。很难相信你甚至不知道如何循环。你也可以使用AddRange()
不知道为什么这个问题会被否决,这很琐碎,但每个人都是从一开始就这样做的……不仅仅是为了两个变量@Mohamed,最后我使用了`foreach(param中的var p)`{cmd.Parameters.Add(p);}`是的,也可以。如果有帖子回答了你的问题,请将其标记为答案。如果有多个帖子提供帮助,请向上投票,因为这有助于StackOverflow变得更好。
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(param[0]);
cmd.Parameters.Add(param[1]);
cmd.ExecuteNonQuery();
public void Save1(List<SqlParameter> param)
{
try
{
using (SqlConnection con = new SqlConnection(ConfigurationManager
.ConnectionStrings["myCon"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("SP_TEST", con))
{
cmd.CommandType = CommandType.StoredProcedure;
foreach (var item in param)
cmd.Parameters.Add(item);
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
/*...*/
}
}
public/*private*/ List<SqlParameter> param = new List<SqlParameter>();
string uname = "...";
string pwd = "...";
param.Add(new SqlParameter("@name", uname));
param.Add(new SqlParameter("@pwd", pwd));
Save1(param);