变量名 '@t' 已声明。变量名在查询批次或存储过程内部必须唯一。
string[]temp={"w1","w2","w3","w4"};int[]Mtemp=newint[temp.Length];//连接数据库:using(SqlCo...
string[] temp={"w1","w2","w3","w4"};
int [] Mtemp=new int[temp.Length];
//连接数据库:
using (SqlConnection myConnection = new SqlConnection(@"user id=sa;password=2005;Database =mydb1;
data source=10.100.13.178;Connect Timeout=30"))
//打开数据库,并建立相关命令
{
myConnection.Open();
using (SqlCommand cmd = myConnection.CreateCommand())
{
for(int i=0;i<temp.Length;i++)
//获取相关的行数
{
cmd.CommandText = "select * from T_Employee where FName=@t";
cmd.Parameters.Add(new SqlParameter("t", temp[i]));
using (SqlDataReader read = cmd.ExecuteReader())
{
if(read.Read())
{
Mtemp[i] = read.GetInt32(read.GetOrdinal("FAge"));//取得相关列
label1.Text = Convert.ToString(Mtemp[0]);
label2.Text = Convert.ToString(Mtemp[1]);
label3.Text = Convert.ToString(Mtemp[2]);
label4.Text = Convert.ToString(Mtemp[3]);
}
运行出现错误:变量名 '@t' 已声明。变量名在查询批次或存储过程内部必须唯一。 展开
int [] Mtemp=new int[temp.Length];
//连接数据库:
using (SqlConnection myConnection = new SqlConnection(@"user id=sa;password=2005;Database =mydb1;
data source=10.100.13.178;Connect Timeout=30"))
//打开数据库,并建立相关命令
{
myConnection.Open();
using (SqlCommand cmd = myConnection.CreateCommand())
{
for(int i=0;i<temp.Length;i++)
//获取相关的行数
{
cmd.CommandText = "select * from T_Employee where FName=@t";
cmd.Parameters.Add(new SqlParameter("t", temp[i]));
using (SqlDataReader read = cmd.ExecuteReader())
{
if(read.Read())
{
Mtemp[i] = read.GetInt32(read.GetOrdinal("FAge"));//取得相关列
label1.Text = Convert.ToString(Mtemp[0]);
label2.Text = Convert.ToString(Mtemp[1]);
label3.Text = Convert.ToString(Mtemp[2]);
label4.Text = Convert.ToString(Mtemp[3]);
}
运行出现错误:变量名 '@t' 已声明。变量名在查询批次或存储过程内部必须唯一。 展开
2个回答
2013-02-19
展开全部
cmd.CommandText = "select * from T_Employee where FName=@t";
// 在这个位置, 加一句 cmd.Parameters.Clear();
// 否则你外面的循环 for(int i=0;i<temp.Length;i++) , 就加入了多次参数 t 了。
// 加 cmd.Parameters.Clear(); 以后, 将清除掉 上一次传入的参数 t,
// 然后在下面追加 本次执行的参数 temp[i]
cmd.Parameters.Add(new SqlParameter("t", temp[i]));
// 在这个位置, 加一句 cmd.Parameters.Clear();
// 否则你外面的循环 for(int i=0;i<temp.Length;i++) , 就加入了多次参数 t 了。
// 加 cmd.Parameters.Clear(); 以后, 将清除掉 上一次传入的参数 t,
// 然后在下面追加 本次执行的参数 temp[i]
cmd.Parameters.Add(new SqlParameter("t", temp[i]));
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询