| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 533 人关注过本帖
标题:[求助]参数问题
只看楼主 加入收藏
wsl000
Rank: 2
等 级:新手上路
威 望:4
帖 子:248
专家分:0
注 册:2006-3-8
收藏
 问题点数:0 回复次数:4 
[求助]参数问题
'定义参数
Dim id As New SqlClient.SqlParameter("@ id", SqlDbType.Int)
Dim name As New SqlClient.SqlParameter("@ name", SqlDbType.VarChar, 10)
Dim sex As New SqlClient.SqlParameter("@ sex", SqlDbType.Char, 2)
Dim xl As New SqlClient.SqlParameter("@ xl", SqlDbType.VarChar, 4)
'将参数集加到定义好的命令对象中
mycom.Parameters.Add(id)
mycom.Parameters.Add(name)
mycom.Parameters.Add(sex)
mycom.Parameters.Add(xl)
'为参数赋值
id.Value = CInt(tbid.Text)
name.Value = tbname.Text
If rb1.Checked = True Then
sex.Value = "男"
Else
sex.Value = "女"
End If
xl.Value = Cbbxl.Text
Dim sqlstr As String
sqlstr = "insert into 基本信息表(编号,姓名,性别,学历) values(@ id,@ name,@ sex,@ xl)"
如果我把sqlstr = "insert into 基本信息表(编号,姓名,性别,学历) values(@ id,@ name,@ sex,@ xl)"
写成sqlstr = "insert into 基本信息表(编号,姓名,性别,学历) values(1,'张三','男','大专')"则执行正确
请大家帮忙看一下我写的参数有什么问题
应该怎么改
搜索更多相关主题的帖子: 参数 
2006-05-08 11:47
feeling
Rank: 4
来 自:福建厦门
等 级:贵宾
威 望:10
帖 子:105
专家分:0
注 册:2006-3-29
收藏
得分:0 
Dim id As New SqlClient.SqlParameter("@ id", SqlDbType.Int)中的@与id不要留空格(以下的几参数也是一样)
改成----sqlstr = "insert into 基本信息表(编号,姓名,性别,学历) values(@id,@name,@sex,@xl)"

互相学习! 不要放弃!时刻相信自己! 信心,是我们撑起世界的\'武器\'! 只怕你不肯学,而不怕自己学不会!
2006-05-09 03:19
wsl000
Rank: 2
等 级:新手上路
威 望:4
帖 子:248
专家分:0
注 册:2006-3-8
收藏
得分:0 
以下是引用feeling在2006-5-9 3:19:00的发言:
Dim id As New SqlClient.SqlParameter("@ id", SqlDbType.Int)中的@与id不要留空格(以下的几参数也是一样)
改成----sqlstr = "insert into 基本信息表(编号,姓名,性别,学历) values(@id,@name,@sex,@xl)"

我也这样改了
但是还是提示错误
我的完整代码是
'定义参数
Dim id As New SqlClient.SqlParameter("@id", SqlDbType.Int)
Dim name As New SqlClient.SqlParameter("@name", SqlDbType.VarChar, 10)
Dim sex As New SqlClient.SqlParameter("@sex", SqlDbType.Char, 2)
Dim xl As New SqlClient.SqlParameter("@xl", SqlDbType.VarChar, 4)
'将参数集加到定义好的命令对象中
mycom.Parameters.Add(id)
mycom.Parameters.Add(name)
mycom.Parameters.Add(sex)
mycom.Parameters.Add(xl)
'为参数赋值
id.Value = CInt(tbid.Text)
name.Value = tbname.Text
If rb1.Checked = True Then
sex.Value = "男"
Else
sex.Value = "女"
End If
xl.Value = Cbbxl.Text
Dim sqlstr As String
sqlstr = "insert into 基本信息表(编号,姓名,性别,学历) values(@id,@name,@sex,@xl)"
If mycon.State = ConnectionState.Closed Then mycon.Open()
remycom(sqlstr).ExecuteNonQuery()
mycon.Close()
sqlstr = "select * from 基本信息表"
dset.Clear()
If mycon.State = ConnectionState.Closed Then mycon.Open()
redset(sqlstr, "基本信息表")
mycon.Close()


Module Executesql
Public mycom As SqlClient.SqlCommand
Public Function remycom(ByVal sqlstr As String) As SqlClient.SqlCommand
' Dim mycom As SqlClient.SqlCommand
mycom = New SqlClient.SqlCommand(sqlstr, mycon)
remycom = mycom
End Function
End Module
执行到remycom(sqlstr).ExecuteNonQuery()提示如下错误

图片附件: 游客没有浏览图片的权限,请 登录注册



2006-05-09 08:19
feeling
Rank: 4
来 自:福建厦门
等 级:贵宾
威 望:10
帖 子:105
专家分:0
注 册:2006-3-29
收藏
得分:0 

把 remycom(sqlstr).ExecuteNonQuery()放在
try

catch sqlex as sqlexception
msgbox "数据库信息:" & sqlex.message
finally
mycon.Close()
end try
按照提示,即可发现真正的错误!


互相学习! 不要放弃!时刻相信自己! 信心,是我们撑起世界的\'武器\'! 只怕你不肯学,而不怕自己学不会!
2006-05-09 10:53
wsl000
Rank: 2
等 级:新手上路
威 望:4
帖 子:248
专家分:0
注 册:2006-3-8
收藏
得分:0 
以下是引用feeling在2006-5-9 10:53:00的发言:

把 remycom(sqlstr).ExecuteNonQuery()放在
try

catch sqlex as sqlexception
msgbox "数据库信息:" & sqlex.message
finally
mycon.Close()
end try
按照提示,即可发现真正的错误!

提示"必须声明变量"@id""


2006-05-09 11:29
快速回复:[求助]参数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021903 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved