当前位置:编程学习 > C#/ASP.NET >>

客户端向服务器请求数据失败,求高手解答

   大体情况这样:c#winform程序,客户端udp向服务器端发送请求,请求用代码(1,2,3。。。)表示,服务器查询数据库并把数据udp发送给客户端,没有问题!但是,重点来了,客户端发送一个带sql查询语句的string给服务器(已确认服务器收到并且正确序列化出原来的string了),服务器查询数据库,居然返回null(调试跟踪的确进行sql的execute query了)。即使查询的语句和前面用代码发送请求时,服务器用的查询语句一样,也是返回Null,百思不得骑姐啊。求高手指教解答,为什么? --------------------编程问答-------------------- 用场景版来说是这样,c# winform客户端和服务器:
客户端:服务器,我给你udp一个1.
服务器:哦,明白,1表示你要一包20的芙蓉王,这就给你取去。(过了n毫秒)好了,拿去吧。
客户端:射射。

然后客户端烟抽完了,又来了
客户端:服务器,给我来一包20的芙蓉王。
服务器:好的,这就给你取去。(过了N毫秒)囧,取不到。。。。只翻到一个null,给你吧。
客户端:尼玛,你个骗子,我要的是20的芙蓉王。给我个null,你妹啊,专业点行不? --------------------编程问答-------------------- sql语句写错了吧 --------------------编程问答-------------------- 肯定没错,都和前面用代码(1,2,3。。)时的语句一样,前面就行 --------------------编程问答-------------------- 前面的查询已经关闭sql连接了,而且是用线程委托的,查询时也没有异常抛出。求高手? --------------------编程问答-------------------- 断点里把sql复制出来到数据库的查询工具里执行以下看看。
你要判断到底是哪个环节给你返回null了,而不是客户端收到了一个null你就说udp的问题。 --------------------编程问答-------------------- 我并没有说是udp的问题,我就是不知道是哪的问题才来问的。
是在服务器端执行查询时返回Null的
public DataTable RunQuery(string strCmd)
                 {
                     DataTable dt = new DataTable();
                     DbDataAdapter adp = this.DbAdp;
                     adp.SelectCommand = this.GetCmd(strCmd);
                     adp.Fill(dt);
                     return dt;
                 }
返回dt是Null。我调试时把strCmd复制到数据库查询了,是可以返回数据的。 --------------------编程问答-------------------- 我感觉是sql语句的问题,你看看里面用的字段有没有和数据库里的关键字重复的?有的话有这个现象 --------------------编程问答-------------------- 在你的数据库端启用工具sql profiler,然后从你的客户端发一个请求,跟踪一下看看数据库里执行的到底是什么查询语句,以及具体的查询结果。 --------------------编程问答-------------------- 前面用代码时我用的是一模一样的sql查询语句,服务器是可以查询出来的,而且我也跟踪到执行语句那里把语句拷贝到sql客户端查询了,是可以返回数据的。姑且先按8楼的先试试。 --------------------编程问答--------------------
 
大神帮忙看看,我用sql profiler追踪的截图,看到的确是read了3条信息,为什么还是返回不了信息? --------------------编程问答-------------------- 如果你认为后台查询结果没有错误,那么就应该跟踪http消息,看看Response内容是什么。 --------------------编程问答-------------------- 是在服务器端的返回值就是null了,就是都还没往客户端发送前就是null了,所以不是http的问题。 --------------------编程问答-------------------- 会用 sql profiler 而不会任何一种 http调试器,这就好像高位截瘫的人会武功,有劲使不出来啊。 --------------------编程问答-------------------- 晕死! sorry啊,我跟另外一个asp.net的帖子 看串了哈! --------------------编程问答-------------------- 说明一下,我是客户端和服务器在同一台电脑上测试的,不知道是不是这个问题,额。。。应该没有关系啊,前面的又可以,唉。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,