热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#连接mysql并webservice数据

擦。我想用这个字开头,因为这个东西搞的我十分崩溃,所谓会者不难,难者不会。我刚刚学习flex,打算用flex连接数据库玩玩&

擦。

我想用这个字开头,因为这个东西搞的我十分崩溃,所谓会者不难,难者不会。我刚刚学习flex,打算用flex 连接数据库玩玩,oracle安装太费劲,而sql server 又需要重新安装,好烦,于是果断用mysql 来搞,首先安装mysql之后,用 navigate打开,并新建了一个表,当然是在test数据库中,内容如下:

然后就开始调试,如何用 flex访问到这个破库。

首先是下载了2010最好更新的一个连接mysql 数据库的.swf,距baidu结果看,有好多人都可以连接成功,但我不清楚我为什么不成功,错误莫名其妙,我都无法下手去查,我觉得可能是我现在用的是flash builder4.6的缘故。

于是换思路,打算用之前有些代码的webservice 弄,当然是VS20008上面,用c#搞一个asp.net的服务应用程序,在hello world下面自己又重新添加的。

由于没什么这方面的基础和了解,所以是瞎撞,主要是在网上搜集一些已有的成功路径,这样,我用了很多的时间搜集,但搜集到的信息十分稀少,不是稀少,而是没有,我是真没有搜集到用 wsdl连接mysql数据库并用于flex 的数据加载的,大家都是用java写的较多见,但java不懂啊,还有用php写的,看起来很简洁,但就是没有懂,苦苦寻觅之下,终于找到一个用c#连接mysql数据库的,但是控制台的应用程序,但这时已经是接近下班了,我都要崩溃了,这一天功夫花的,我心疼。

于是我打算把整个过程写下来:

首先,你得下载一个dll,必须的,然后引用到你的程序里,webservice当中。

这个dll,也是十分坑爹,下载下来后有两个包,一个64 一个86,我当自己电脑64位,结果就走到死胡同里了,选择86的试试,可是里面的那个版本叫多啊,我是服了,找了一个没有单独放置的dll,不知其何处dll,也不知道其内容,引用后,没有明显出错。就这样开始了。

其他我就不多说了,把下面代码直接复制进去,运行,输入sql语句:select * from p_c_china,于是,你可以看到结果如下下下面:(看这段代码下面有图)

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using MySql.Data.MySqlClient;


namespace WebService1
{
///


/// Service1 的摘要说明
///

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

[WebMethod]
public string HelloWorld()
{
return "Hello World";
}

[WebMethod]
public DataTable MySqlQuery(string sql)
{


string source = "server=localhost;UserId=root;password=111;database=test";
/*指定服务器和数据名,这个和书上有点不同,书上是windows用户论证,我们是用用户名root的,密码为空,数据库名information_scema*/
MySqlConnection conn = new MySqlConnection(source);//创建连接
conn.Open(); /*打开连接*/

string select = "select * from p_c_china";
MySqlCommand cmd = new MySqlCommand(select, conn);
MySqlDataReader reader = cmd.ExecuteReader(); /*执行查询命令*/

DataTable dt = new DataTable();
dt.Load(reader);
return dt;
conn.Close(); /*关闭连接*/

}
}
}

 

 

 

 

 

 

 

 然后在flex的编辑框架内写入以下代码,当然,此处可以不引用那个坑爹的swf了。运行效果见最后:


xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
initialize="init()">




import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.soap.WebService;

private function init():void
{
var webservice:WebService = new WebService();
webservice.wsdl = "http://localhost:53072/Service1.asmx?wsdl";
webservice.loadWSDL();
webservice.addEventListener(ResultEvent.RESULT,callback);
webservice.MySqlQuery("select * from p_c_china");

}

private function callback(event:ResultEvent):void
{
if(event.result && event.result.Tables.p_c_china.Rows)
{
var rows:ArrayCollection = event.result.Tables.p_c_china.Rows;
dg.dataProvider = rows;
}
}
]]>









 

转:https://www.cnblogs.com/arcserver/archive/2012/11/19/2777791.html



推荐阅读
author-avatar
佐别
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有