【问题标题】:how to Post multiple records to website from c#?如何从 c# 将多条记录发布到网站?
【发布时间】:2011-05-04 09:11:32
【问题描述】:

我想在从数据库表中读取记录后将多条记录发送到网站。我可以发送一条记录,但不能循环遍历记录并一次发送一条。

这是我正在使用的部分代码:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded";

SqlCommand cmd = new SqlCommand("select top 10 field1, field2, field3, field4 prices", conn);

SqlDataReader rd = cmd.ExecuteReader();

WebResponse rs;
string strNewValue;

StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);

while (rd.Read())

{


strNewValue = "field1='" + rd[0].ToString() + "'&field2='" + rd[1].ToString() + "'&field3='AM'&field4=" + rd[2].ToString();

stOut.Write(strNewValue);



}

stOut.Close();

rs = req.GetResponse();

此代码仅发布最后一条记录。如何循环浏览记录并一次发布所有记录。

提前致谢

【问题讨论】:

  • 您确定问题不在于接收器没有正确读取所有行(它可能将读取的每一行替换为下一行,因此以最后一行结束)?

标签: asp.net c#-4.0


【解决方案1】:

看起来您正在将所有记录放入同一个 http 帖子中 - 尝试将其更改为发布每条记录 - 如下所示:

SqlCommand cmd = new SqlCommand("select top 10 field1, field2, field3, field4 prices", conn);

SqlDataReader rd = cmd.ExecuteReader();


while (rd.Read())
{


HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded";


WebResponse rs; string strNewValue;

StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);


strNewValue = "field1='" + rd[0].ToString() + "'&field2='" + rd[1].ToString() + "'&field3='AM'&field4=" + rd[2].ToString();

stOut.Write(strNewValue);
stOut.Close();
rs = req.GetResponse();

}

rd.Close();

【讨论】:

  • ps - 刚刚注意到,您应该将 rd[0].ToString() 更改为 HttpUtility.UrlEncode(rd[0].ToString()) 以避免在数据库内容包含诸如此类的字符时出现错误作为 = 和 &
猜你喜欢
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多