我想在循环中将两个变量插入到database.how中吗?
foreach (string item in split)
{
val = item;
foreach (string uid in useid)
{
useval = uid;
}
command = new SqlCommand();
command.CommandText = "Insert_SentSMS";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@sentTime", sentTime);
command.Parameters.AddWithValue("@mobileNo", val);
command.Parameters.AddWithValue("@userid", useval);
command.Parameters.AddWithValue("@smsType", "Manual");
command.Parameters.AddWithValue("@smsText", smsText);
command.Parameters.AddWithValue("@registrationId", lblCustomSMSRegId.Text);
command.Connection = connection;
command.ExecuteNonQuery();
}
}
我尝试过如上所述,但'useval'值与其他值相同...
答案 0 :(得分:1)
如果您能正确格式化代码,您可以自己找到解决方案。
您的代码显然有2 {
但3 }
。这意味着,您在代码中忘记了一个{
,或者您没有提及我们。
你正在执行你的命令
foreach (string uid in useid)
声明。这意味着,只有最后一个值将作为useval
执行。
将执行代码部分移至;
foreach (string item in split)
{
val = item;
foreach (string uid in useid)
{
useval = uid;
command = new SqlCommand();
command.CommandText = "Insert_SentSMS";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@sentTime", sentTime);
command.Parameters.AddWithValue("@mobileNo", val);
command.Parameters.AddWithValue("@userid", useval);
command.Parameters.AddWithValue("@smsType", "Manual");
command.Parameters.AddWithValue("@smsText", smsText);
command.Parameters.AddWithValue("@registrationId", lblCustomSMSRegId.Text);
command.Connection = connection;
command.ExecuteNonQuery();
}
}
顺便说一下,不要再使用AddWithValue
了。 It may generate unexpected results sometimes。使用Add
重载来指定SqlDbType
和参数大小。还可以使用using
statement来处置您的连接和命令。
答案 1 :(得分:0)
答案 2 :(得分:0)
你在永远循环中重新useVal
。以下是您可以实现的目标:
foreach (string item in split)
{
val = item;
foreach (string uid in useid)
{
useval = uid;
command = new SqlCommand();
command.CommandText = "Insert_SentSMS";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@sentTime", sentTime);
command.Parameters.AddWithValue("@mobileNo", val);
command.Parameters.AddWithValue("@userid", useval);
command.Parameters.AddWithValue("@smsType", "Manual");
command.Parameters.AddWithValue("@smsText", smsText);
command.Parameters.AddWithValue("@registrationId", lblCustomSMSRegId.Text);
command.Connection = connection;
command.ExecuteNonQuery();
}
}
但是我不确定在循环中创建数据库查询是否是个好主意。
答案 3 :(得分:0)
您的foreach
循环错误:
foreach (string uid in useid)
{
useval = uid;
}
这没有任何意义(你在没有对它们做任何事情的情况下迭代所有项目),你可能意味着做类似的事情:
foreach (string item in split)
{
val = item;
foreach (string uid in useid)
{
useval = uid;
command = new SqlCommand();
command.CommandText = "Insert_SentSMS";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@sentTime", sentTime);
command.Parameters.AddWithValue("@mobileNo", val);
command.Parameters.AddWithValue("@userid", useval);
command.Parameters.AddWithValue("@smsType", "Manual");
command.Parameters.AddWithValue("@smsText", smsText);
command.Parameters.AddWithValue("@registrationId", lblCustomSMSRegId.Text);
command.Connection = connection;
command.ExecuteNonQuery();
}
}