Foxtable(狐表)用户栏目专家坐堂 → [求助SQL高手]存储过程在客户端调用查询不到数据


  共有9256人关注过本帖树形打印复制链接

主题:[求助SQL高手]存储过程在客户端调用查询不到数据

帅哥哟,离线,有人找我吗?
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
[求助SQL高手]存储过程在客户端调用查询不到数据  发帖心情 Post By:2012/7/9 17:44:00 [只看该作者]

学习存储过程不久,确实非常方便

但是今天发现一个问题,一个写好的存储过程,在SSMS中可以正常查询出数据,但是在客户端用SQLCommand以及执行SQL还有绑定到表都没有数据,有SQL高手请帮助看一下是不是SQL脚本的问题,谢谢!

 

 

 

USE [jks12]

GO

/****** Object:  StoredProcedure [dbo].[Pro_ChatRecordCount_Sel]    Script Date: 07/09/2012 16:33:12 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Description:   <用于根据参数的用户名获取其未查看的消息数目>

-- =============================================

ALTER PROCEDURE [dbo].[Pro_ChatRecordCount_Sel]

    @UserName NVARCHAR(20)

AS

BEGIN

 

    DECLARE @Tbl TABLE

    (

       用户名 NVARCHAR(20),

       接收人 NVARCHAR(20),

       级别 INT

    )

   

    --将数据插入临时表中

   

    INSERT @Tbl(用户名,接收人,级别) (SELECT 内部通讯记录.用户名,接收人,级别

       FROM 内部通讯记录

       LEFT JOIN (SELECT * FROM 最后会话时间 WHERE 用户名 = @UserName) A

       ON 内部通讯记录.接收人 = A.会话方

       WHERE 内部通讯记录.时间 > A.时间 OR A.时间 IS NULL)

      

    --SELECT * FROM @Tbl

   

    --单对单会话

    SELECT 用户名,接收人,COUNT(用户名) AS 数量

    FROM @Tbl

    WHERE 级别 = 2 AND 接收人 = @UserName

    GROUP BY 接收人,用户名 

    UNION

    --所有用户及用户组会话

    SELECT 接收人 AS 用户名,接收人,COUNT(用户名) AS 数量

    FROM @Tbl

    WHERE 级别 = 0 OR (级别 = 1 AND 接收人 IN (SELECT 分组名称 FROM 用户分组 WHERE 用户名 LIKE '%' + @UserName + '%'))

    GROUP BY 接收人

   

    DELETE @Tbl

   

END

 


 回到顶部
帅哥哟,离线,有人找我吗?
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
  发帖心情 Post By:2012/7/9 17:53:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.bmp
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.bmp
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.bmp
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
  发帖心情 Post By:2012/7/9 18:42:00 [只看该作者]

顶起

 回到顶部
帅哥哟,离线,有人找我吗?
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
  发帖心情 Post By:2012/7/10 8:36:00 [只看该作者]

顶起

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/10 10:01:00 [只看该作者]

收到,我们测试一下,但道理不会这样的。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/10 10:45:00 [只看该作者]

我们测试了可以啊

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/7/10 10:52:00 [只看该作者]

代码看不懂。


 回到顶部
帅哥哟,离线,有人找我吗?
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
  发帖心情 Post By:2012/7/10 11:51:00 [只看该作者]

是不是这个存储过程中用了一个表变量的问题,我在VS中测试又可以的

 

Dim Cnn As New System.Data.SqlClient.SqlConnection("ConnectionString")

Cnn.Open()

Dim adoCmd As New System.Data.SqlClient.SqlCommand("Pro_ChatRecordCount_Sel", Cnn)

adoCmd.CommandType = CommandType.StoredProcedure

adoCmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 20)

adoCmd.Parameters("@UserName").Value = "Frances"

Dim DtApt As New System.Data.SqlClient.SqlDataAdapter(adoCmd)

Dim tmptbl As New DataTable

DtApt.Fill(tmptbl)

DataGridView1.DataSource = tmptbl

Cnn.Close()


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/10 11:53:00 [只看该作者]

我们测试的时候,也传递了变量啊

 回到顶部
帅哥哟,离线,有人找我吗?
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
  发帖心情 Post By:2012/7/10 11:53:00 [只看该作者]

不知道你们用的是什么方法测试的呢?

 回到顶部
总数 13 1 2 下一页