您的位置:首页 > 数据库

C#通过WebServer对数据库进行修改

2015-08-03 22:24 417 查看
一个简单的demo,通过如下框架在客户端将数据插入数据库Server上的数据库中。



1. 客户端是用C#写的,运行在一台笔记本上。

2. WebServer是用Apache和PHP搭建的,运行在一台台式机上,并且用花生壳申请了一个免费域名,绑定了该主机的IP地址,让客户端可以在互联网上向WebServer发送请求。

3. 数据库Server用的是MySQL,运行在另外一台台式机上;WebServer和数据库Server在一个局域网内。MySQL中有一个用来测试的DataBase,里面包含一个表Student,其字段如下:

+-------+-----------+-------+-------+-----------+-------+
| Field | Type      | Null  | Key   | Default   | Extra |
+-------+-----------+-------+-------+-----------+-------+
| num   | char(10)  | NO    | PRI   | NULL      |       |
| name  | char(20)  | NO    |       | NULL      |       |
| sex   | char(5)   | NO    |       | NULL      |       |
| age   | char(5)   | NO    |       | NULL      |       |
+-------+-----------+-------+------+------------+-------+


C#使用WebRequest类和WebResponse类向WebServer发送请求和返回结果。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;   //WebRequest类和WebResponse类的命名空间
using System.IO;    //Stream类的命名空间

namespace FormsApp1
{
public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}

private static String RequesURL = "http://hhueccz.imwork.net:30242/";   //WebServer 的域名

private void button1_Click(object sender, EventArgs e)
{
/*
* 目前的想法是每一个方法写一个php文件,所以URL的前面部分可以写成一个静态的全局变量;
* insert.php为这个demo的例子插入学生信息方法对应的php文件;
'?'后面跟传入的参数名和参数值,参数之间用'&'连接;
* 这里完整的请求URL是:
* "http://hhueccz.imwork.net:30242/insert.php?num=10001&name=张三&sex=男&age=20"
*/
RequesURL += "insert.php?";
RequesURL += "num=" + num.Text.Trim();  //界面上有一个名为num的TextBox
RequesURL+= "&name=" + name.Text.Trim();//界面上有一个名为name的TextBox
RequesURL += "&sex=" + sex.Text.Trim(); //界面上有一个名为sex的TextBox
RequesURL += "&age=" + age.Text.Trim(); //界面上有一个名为age的TextBox

/*
* 我们这里用WebRequest类提供的一些方法向WebServer请求数据;
* 使用Create方法实例化WebRequest对象,并传入RequestURL;
* Credentials是网络上的身份验证,这里使用的是默认的验证方式;
* 请求方式为"GET"
*/
WebRequest request = WebRequest.Create(RequesURL);
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";

/*
* 使用WebResponse类的一些方法获取WebServer返回的数据;
* 其实是返回RequestURL的php页面上的数据;
* 使用request.GetResponse()的时候,request对象才向WebServer发送请求,并接收回复
*/
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();

StreamReader reader = new StreamReader(stream);
String message = reader.ReadToEnd();
MessageBox.Show(message);

reader.Close();
stream.Close();
response.Close();
}
}
}


PHP获取C#发送的请求和向MySQL插入数据的代码如下:

<?php
include("conn.php");

$num  = $_GET['num'];
$name = $_GET['name'];
$sex  = $_GET['sex'];
$age  = $_GET['age'];

$sqlText = "insert into student values('$num', '$name', '$sex', '$age')";
mysql_query($sqlText);
//echo("success");
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息