2011-05-04 2 views
1

데이터베이스 테이블에서 레코드를 읽은 후 웹 사이트에 여러 레코드를 보내고 싶습니다. 하나의 레코드를 보낼 수는 있지만 레코드를 순환하여 한 번에 하나씩 보낼 수는 없습니다.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 포스트에 모든 레코드를 가하고있는 것 같습니다
+0

당신에게 문제를 확실 수신자가 모든 행을 올바르게 읽지 않는다는 것이 아닙니다 (각 행을 다음 행으로 바꿀 수 있으므로 마지막 행으로 끝남)? – forsvarir

답변

2

- 그것은 각 레코드를 작성하려면 변경 시도 -이 같은 :

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

관련 문제