如何从c#发布多个记录到网站?
问题描述:
我想从数据库表中读取记录后,将多个记录发送到网站。我可以发送一条记录,但无法循环记录并一次发送一条记录。如何从c#发布多个记录到网站?
这里是我使用的代码的一部分:
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();
这个代码只张贴的最后一条记录。我如何循环查看记录并逐个发布所有记录。
在此先感谢
答
看起来你把所有的记录到同一个HTTP POST - 尝试改变它发布每一条记录 - 是这样的:
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();
+0
ps - 刚刚注意到,为了避免在数据库内容包含字符(如=和)时出现错误,应将rd [0] .ToString()更改为HttpUtility.UrlEncode(rd [0] .ToString() – Nathan 2011-05-04 09:19:43
你确定问题是不是接收器没有正确读取所有的行(它可能会替换每行读取下一行,所以最后一行结束)? – forsvarir 2011-05-04 09:14:00