关于WebClient自动提交网页数据问题
彖爻之辞 2011-10-31 03:38:33 关于WebClient自动提交网页数据问题
在网上看到了一个自动提交网页的内容,自己也跟着做了一个。
1、做了一个简单的网页,功能就是保存数据到SQL数据库中。测试通过。
2、在C#上做了一个自动提交的程序,学着网上的内容做的。是用WebClient做的。
3、提交过程可以,也可以看到返回的内容是已经提交了。但是数据库中并没有加入记录。
请问如何解决?
下面是自动提交的程序代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Net;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string submitButton = "增加";
string viewState = "/wEPDwULLTE0ODE3NDYyNzRkZK5viWtFFoIJ+N3qnoqOq75Ns/Od";
string eventValidation = "/wEWBQLygKKyBALe78rwDAL477bwDALc74LxDALliu2bAyco1MKM2hqETtym+PO38rueROZh";
submitButton = System.Web.HttpUtility.UrlEncode(submitButton);
viewState = System.Web.HttpUtility.UrlEncode(viewState);
eventValidation = System.Web.HttpUtility.UrlEncode(eventValidation);
this.txt1.Text = submitButton;
this.txt2.Text = viewState;
this.txt3.Text = eventValidation;
try
{
string uriString = "http://192.168.104.35/Default.aspx";
string postString = "BH=04&XM=WL&DZ=214400&COMMIT" + submitButton + "&__VIEWSTATE=" + viewState + "&__EVENTVALIDATION=" + eventValidation;
WebClient webClient = new WebClient();
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] postData = Encoding.ASCII.GetBytes(postString);
byte[] responseData = webClient.UploadData(uriString, "post", postData);
string srcString = Encoding.UTF8.GetString(responseData);
re.Text = srcString;
}
catch (WebException we)
{
string msg = we.Message;
}
}
}
}
其中:txt1,txt2,txt3是文本框,re是RichText
下面是网页的内容:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>A03、简单网页</title>
</head>
<body>
<asp:SqlDataSource
ID="cnnMain"
runat="server"
ConnectionString="<%$ ConnectionStrings:TESTConnectionString %>"
SelectCommand="SELECT BH, XM, DZ FROM CS"
InsertCommand="INSERT INTO CS (BH,XM,DZ) VALUES (@BianHao,@XingMing,@DiZhi)">
<insertparameters>
<asp:formparameter name="BianHao" formfield="BH" />
<asp:formparameter name="XingMing" formfield="XM" />
<asp:formparameter name="DiZhi" formfield="DZ" />
</insertparameters>
</asp:SqlDataSource>
<form id="form1" runat="server">
<div>
<span style="font-family: 宋体">编码:</span><asp:TextBox ID="BH" runat="server" Font-Names="宋体" Font-Size="9pt"></asp:TextBox><br />
<span style="font-family: 宋体">姓名:</span><asp:TextBox ID="XM" runat="server" Font-Names="宋体" Font-Size="9pt"></asp:TextBox><br />
<span style="font-family: 宋体">地址:</span><asp:TextBox ID="DZ" runat="server" Font-Names="宋体" Font-Size="9pt"></asp:TextBox><br />
<asp:Button ID="COMMIT" runat="server" Text="增加" Font-Names="宋体" Font-Size="9pt" />
</div>
</form>
</body>
</html>
下面是提交程序
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub COMMIT_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles COMMIT.Click
cnnMain.Insert()
End Sub
End Class