教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

转帖求助,VB2005多用户连接SQL时常报错。谢谢!

学院最新推荐文章
教程推荐
『转帖求助,VB2005多用户连接SQL时常报错。谢谢!』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-9-15 
我的问题在VB.net里一直没有人回答,我只好把帖子转过来求助!谢谢!
=============================================================
大家好,我在练习尝试使用VB2005连接SQL的存储过程。
我写一个小软件读取SQL的存储过程,我发现如果只有一个用户使用时是没有任何问题的。但是两个以上时只能是第一个先传递参数的用户能读取存储过程,其他用户会报“传递参数过多”。请问我应该怎么样解决?
======================================
’连接的语句
Function Cnn() As SqlClient.SqlConnection
        Dim Conn As SqlClient.SqlConnection
        Dim Link As String = My.Settings.wandaoa_wxConnectionString
        Conn = New SqlClient.SqlConnection(Link)
        Conn.Open()
        Cnn = Conn
End Function
’传递&获取
Cmd.CommandType = CommandType.StoredProcedure
        Cmd.CommandText = "list_user"
        Cmd.Connection = Cnn()
        Cmd.Parameters.Clear()
        Cmd.Parameters.Add(New SqlClient.SqlParameter("@a", SqlDbType.NVarChar, 200)).Value = user_a
        Dt = New SqlClient.SqlDataAdapter(Cmd)
        Tb = New DataTable
        Dt.Fill(Tb)

        DataGridView1.DataSource = Tb
,存储过程语句
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[list_user]
@a varchar(200)
as

Select * From user_master Where ( customer_name Like @a ) Order By customer_code
===================================================
为了确认是不是连接没有关闭产生的错误,我修改了一下代码。

Cmd.CommandType = CommandType.StoredProcedure
        Cmd.CommandText = "list_user"
        Cmd.Connection = Cnn()
        Cmd.Parameters.Clear()
        Cmd.Parameters.Add(New SqlClient.SqlParameter("@a", SqlDbType.NVarChar, 200)).Value = user_a
        Dt = New SqlClient.SqlDataAdapter(Cmd)
        Tb = New DataTable
        Dt.Fill(Tb)
        DataGridView1.DataSource = Tb
        cnn.colse‘增加这行
==================================================
可是一样出错。闷啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
请问是SQL设置问题还是软件写有问题?谢谢!

这个问题第1个回答:
引用楼主 hn0550 的帖子:
我的问题在VB.net里一直没有人回答,我只好把帖子转过来求助!谢谢!
=============================================================
大家好,我在练习尝试使用VB2005连接SQL的存储过程。
我写一个小软件读取SQL的存储过程,我发现如果只有一个用户使用时是没有任何问题的。但是两个以上时只能是第一个先传递参数的用户能读取存储过程,其他用户会报“传递参数过多”。请问我应该怎么样解决?
=======================…

我觉得你的这个问题是你设计上的逻辑出现了问题导致,“传递参数过多”这个错误就是说明。
这个问题第2个回答:
先把参数去掉(写成不用参数的存储过程)试试看会不会出错.
这个问题第3个回答:
To CN_SQL: 语句就上面这些,能不能帮帮忙看看是哪里出问题?谢谢!
To qianjin036a:如果我去掉参数,错误提示变成“list_user” 不存在。
另外,我的问题是:如果只有一个用户使用时是没有任何问题的,但是两个以上时就会报错。
这个问题第4个回答:
引用 3 楼 hn0550 的回复:
To CN_SQL: 语句就上面这些,能不能帮帮忙看看是哪里出问题?谢谢!
To qianjin036a:如果我去掉参数,错误提示变成“list_user” 不存在。
另外,我的问题是:如果只有一个用户使用时是没有任何问题的,但是两个以上时就会报错。

你要从以下几个方面去调试:
1:首先确定你在VB里调用存储过程用的VB方法没有错误,你可以先写个简单的没有参数的存储过程试试(如果这都出错,说明你的VB方法没用正确,这个就得去问你自己)
2:把存储过程改成有参数的,然后调整你VB里的方法,先不要执行最后一步执行存储过程的语句,先把变量打印出来确定参数变量正确。
3:完整的执行


你这样去调试,应该就知道问题所在了,楼主不光要学会编程,还更要学会如何去调试。
这个问题第5个回答:
这个问题还是查不出来,我使用临时表的方法解决了。谢谢大家!

作者:hn0550 来源:csdn
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - MsSql综合技巧
普通教程【脑袋快想爆炸了- -!】 怎么样
普通教程关于级联删除地疑难,新手提问,
普通教程怎么样动态控制列数?
普通教程数据库恢复 MS2000
普通教程当数据库中varchar字段值为null
普通教程create function 怎么才无法要返
普通教程各位帮我看看是啥疑难啊, SQL运
普通教程SQL server 2005 安装疑难 SP2更
普通教程sql update
普通教程update触发器地疑难
普通教程字符串地查询疑难
普通教程安全性--登陆--想建一个用户tes
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光