C# 使用asp.net mvc中的foreach循环获取存储在数据库中的所有电话号码
我的电话号码存储在数据库中,我想使用C# 使用asp.net mvc中的foreach循环获取存储在数据库中的所有电话号码,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我的电话号码存储在数据库中,我想使用foreach循环检索所有电话号码,并将其分配给变量并发送批量短信,但问题是,我从数据库中只获得一个号码。这是我的密码: // GET: Members/SendBatch public ActionResult SendBatch() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public ActionResu
foreach
循环检索所有电话号码,并将其分配给变量并发送批量短信,但问题是,我从数据库中只获得一个号码。这是我的密码:
// GET: Members/SendBatch
public ActionResult SendBatch()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SendBatch(Membership member)
{
var db = new ChurchContext();
StreamReader objReader;
WebClient client = new WebClient();
string mess = member.Message;
string cell = member.Cell;
string pass = "xxxx";
string user = "xxxx";
string selectministries = member.SelectMinistries;
string pathtoministries = "";
pathtoministries = GetMinisry(selectministries);
if (pathtoministries == "Youth")
{
var youthtable = from e in db.Youths
select e;
var Entyouth = youthtable.ToList();
foreach (Youth y in Entyouth)
{
string youthcell = y.ContactMobile.ToString();
cell = youthcell;
}
}
string baseurl = "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0?" +
"username=" + user + "&" +
"password=" + pass + "&" +
"message=" + mess + "&" +
"msisdn=" + cell;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(baseurl);
try
{
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
objReader = new StreamReader(objStream);
objReader.Close();
}
catch (Exception ex)
{
ex.ToString();
}
return View("Index", member);
}
public static string GetMinisry(string ministry)
{
string membership = "";
switch (ministry)
{
case "Youth":
membership = "Youth";
break;
case "Children":
membership = "Children";
break;
case "Men":
membership = "Men";
break;
case "Women":
membership = "Women";
break;
case "Visitors":
membership = "Visitors";
break;
case "Members":
membership = "Members";
break;
}
return membership;
}
我想获取所有电话号码并将其分配给cell variable,然后分配给sms api并发送批量短信。试试这个(脏的,但可以完成任务):
string mess=member.Message;
字符串单元格=member.cell;
List cellNumbers=新列表()//号码表
字符串pass=“xxxx”;
字符串user=“xxxx”;
字符串selectDeparties=member.selectDeparties;
字符串pathtoministries=“”;
pathtoministries=GetMinistry(选择Ministry);
if(pathtoministries==“Youth”)
{
var youthtable=来自数据库中的e
选择e;
var Entyouth=youttable.ToList();
foreach(青年中的青年)
{
字符串youthcell=y.ContactMobile.ToString();
细胞=青年细胞;
单元格编号。添加(单元格);
}
}
foreach(cellNumbers中的字符串号)//发送所有短信
{
字符串baseurl=”http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0?" +
“username=“+user+”&”+
“password=“+pass+”&”+
“message=“+mess+”&”+
“msisdn=”+编号;
WebRequest-wrGETURL;
wrGETURL=WebRequest.Create(baseurl);
尝试
{
流对象流;
objStream=wrGETURL.GetResponse().GetResponseStream();
objReader=新的StreamReader(objStream);
objReader.Close();
}
捕获(例外情况除外)
{
例如ToString();
}
}
您有一个循环,在每个迭代中覆盖单元格
,即使单元格
收到了您需要的所有值,所有值都被下一个值覆盖,但最后一个值除外。循环完成后,您将使用单元格的最后一个值发送请求。这就是为什么你有一种错觉,认为你得到了一个单一的价值。实际上,您已经获得了所有的值,但是在使用它们之前犯了覆盖它们的错误。解决方案是在周期内而不是在周期后发送请求,如下所示:
// GET: Members/SendBatch
public ActionResult SendBatch()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SendBatch(Membership member)
{
var db = new ChurchContext();
StreamReader objReader;
WebClient client = new WebClient();
string mess = member.Message;
string cell = member.Cell;
string pass = "xxxx";
string user = "xxxx";
string selectministries = member.SelectMinistries;
string pathtoministries = "";
pathtoministries = GetMinisry(selectministries);
if (pathtoministries == "Youth")
{
var youthtable = from e in db.Youths
select e;
var Entyouth = youthtable.ToList();
foreach (Youth y in Entyouth)
{
string youthcell = y.ContactMobile.ToString();
cell = youthcell;
string baseurl = "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0?" +
"username=" + user + "&" +
"password=" + pass + "&" +
"message=" + mess + "&" +
"msisdn=" + cell;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(baseurl);
try
{
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
objReader = new StreamReader(objStream);
objReader.Close();
}
catch (Exception ex)
{
ex.ToString();
}
return View("Index", member);
}
}
}
public static string GetMinisry(string ministry)
{
string membership = "";
switch (ministry)
{
case "Youth":
membership = "Youth";
break;
case "Children":
membership = "Children";
break;
case "Men":
membership = "Men";
break;
case "Women":
membership = "Women";
break;
case "Visitors":
membership = "Visitors";
break;
case "Members":
membership = "Members";
break;
}
return membership;
}
谢谢各位,你们的回答解决了我的问题,希望以后访问此页面时遇到类似问题的人能尽快得到帮助。你们想做各种事情,但只是不断地给同一个单变量单元格赋值。只需在for each循环中执行您想要执行的操作。您正在从数据库中获取所有信息,但您正在将其全部丢弃(除了最后一个…),因为您正在为每次迭代覆盖循环中单元格变量的值。非常感谢,它工作得很好,我能够从数据库中检索所有数字并发送批量短信。@Haro欢迎您。如果这个答案解决了你的问题,你可以考虑接受它作为正确的答案,让未来的访问者在这个页面上浏览一个类似问题的解决方案。我该怎么做?@在你问的问题的答案左边的HARO会找到一个灰色的复选框。如果你点击它,你就会接受答案。一个被接受的答案是绿色的复选框,这样访问者就可以看到是否有一个被接受的正确解决方案。它也工作得很好,它可以从数据库中获取所有号码,我可以通过批量短信向所有号码发送消息,你节省了我的时间。不客气。如果我可以建议的话,将数字检索和批处理SMS分为两个功能。这将更容易调试。如果您觉得我们的答案有用,请投票:)
// GET: Members/SendBatch
public ActionResult SendBatch()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SendBatch(Membership member)
{
var db = new ChurchContext();
StreamReader objReader;
WebClient client = new WebClient();
string mess = member.Message;
string cell = member.Cell;
string pass = "xxxx";
string user = "xxxx";
string selectministries = member.SelectMinistries;
string pathtoministries = "";
pathtoministries = GetMinisry(selectministries);
if (pathtoministries == "Youth")
{
var youthtable = from e in db.Youths
select e;
var Entyouth = youthtable.ToList();
foreach (Youth y in Entyouth)
{
string youthcell = y.ContactMobile.ToString();
cell = youthcell;
string baseurl = "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0?" +
"username=" + user + "&" +
"password=" + pass + "&" +
"message=" + mess + "&" +
"msisdn=" + cell;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(baseurl);
try
{
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
objReader = new StreamReader(objStream);
objReader.Close();
}
catch (Exception ex)
{
ex.ToString();
}
return View("Index", member);
}
}
}
public static string GetMinisry(string ministry)
{
string membership = "";
switch (ministry)
{
case "Youth":
membership = "Youth";
break;
case "Children":
membership = "Children";
break;
case "Men":
membership = "Men";
break;
case "Women":
membership = "Women";
break;
case "Visitors":
membership = "Visitors";
break;
case "Members":
membership = "Members";
break;
}
return membership;
}