在线请教!调用存储过程时返回空值!

tiantian88 2004-05-04 09:41:44
各位大侠!请不惜赐教!菜鸟感激不尽!
在调用存储过程时,即使直接给存储过程的输入参数赋值,输出也是空值!而直接在sqlserver里的查询发分析起下做查询时!能得到正确结果!
附1:存储过程:CREATE PROCEDURE CountTotal
(
@StuProfession varchar,
@StuClass varchar,
@CourseName char ,
@Count int output
)
AS
select count (*) from TB_StudentScore
where StuProfession=@StuProfession and StuClass=@StuClass and CourseName=@CourseName and Memo!=' 代考 ' and Memo!='缺考' and Memo!='舞弊'
GO
附1:在vs下调用存储过程:

Dim str1, str2, str3 As String
Dim SummaryScore As Integer
Dim cmd1 As New SqlCommand
cmd1.Connection = sqlconn
cmd1.CommandText = "CountTotal"
cmd1.CommandType = CommandType.StoredProcedure
Dim TempParam11, TempParam22, TempParam33, TempParam44 As SqlParameter

TempParam11 = New SqlParameter("@StuProfession", SqlDbType.VarChar, 40)
TempParam11.Value = "自本" 'DropDownList9.SelectedItem.Text
cmd1.Parameters.Add(TempParam11)

TempParam22 = New SqlParameter("@StuClass", SqlDbType.VarChar, 10)
TempParam22.Value = "001" ' DropDownList10.SelectedItem.Text
cmd1.Parameters.Add(TempParam22)

TempParam33 = New SqlParameter("@CourseName", SqlDbType.Char, 10)
TempParam33.Value = "过程控制与系统理论" '" '" & TextBox1.Text & "'"
cmd1.Parameters.Add(TempParam33)

TempParam44 = New SqlParameter("@Count", SqlDbType.Int, 4)
TempParam44.Direction = ParameterDirection.Output
cmd1.Parameters.Add(TempParam44)
cmd1.ExecuteNonQuery()
' TextBox12.Text = cmd1.Parameters("@Count").Value.ToString()


'total= cmd1.Parameters("@Count").Value 为某一班级某一课程能参与算平均分的总人数

另外我直接在查询分析器里面作sql查询是是能的到正确的结果的!

...全文
71 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tiantian88 2004-05-04
现在可一返回值了!但结果不正确!总是返回0!
  • 打赏
  • 举报
回复
tiantian88 2004-05-04
谢谢大家的回复!我试试看!谢谢!谢谢!!!!!!!!!!
  • 打赏
  • 举报
回复
shenen 2004-05-04
欢迎加入QQ组:1169566
  • 打赏
  • 举报
回复
shenen 2004-05-04
>> TempParam33 = New SqlParameter("@CourseName", SqlDbType.Char, 10)
>> TempParam33.Value = "过程控制与系统理论" '" '" & TextBox1.Text & "'"
>> cmd1.Parameters.Add(TempParam33)
其实参数中只有“过程控制与”5个字,
你再核对一下数据库,看参数类型和长度是否正确
  • 打赏
  • 举报
回复
kexian 2004-05-04
TempParam11.Value 賦值不能用常數,要用變量

TempParam11.Value="自本"
改為
TempParam11.Value = DropDownList9.SelectedItem.Text

或試試:
cmd1.Parameters.Add("@StuProfession",DropDownList9.SelectedItem.Text
)

  • 打赏
  • 举报
回复
smx717616 2004-05-04
因为,你这是动态的 sql
一楼的好象可以
  • 打赏
  • 举报
回复
smx717616 2004-05-04
从你的代码看没什么错误
DropDownList10.SelectedItem.Text
把所有的都trim 一下
  • 打赏
  • 举报
回复
shenen 2004-05-04
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Dim str1, str2, str3 As String
Dim SummaryScore As Integer
Dim cmd1 As New SqlCommand
Dim sqlconn As New SqlConnection("Data Source=.;uid=develop;pwd=12345;Initial Catalog=new_ks")
cmd1.Connection = sqlconn
cmd1.CommandText = "CountTotal"
cmd1.CommandType = CommandType.StoredProcedure
Dim TempParam11, TempParam22, TempParam33, TempParam44 As SqlParameter

TempParam11 = New SqlParameter("@StuProfession", SqlDbType.VarChar, 40)
TempParam11.Value = "自本" 'DropDownList9.SelectedItem.Text
cmd1.Parameters.Add(TempParam11)

TempParam22 = New SqlParameter("@StuClass", SqlDbType.Char, 10)
TempParam22.Value = "001" ' DropDownList10.SelectedItem.Text
cmd1.Parameters.Add(TempParam22)

TempParam33 = New SqlParameter("@CourseName", SqlDbType.Char, 20)
TempParam33.Value = "过程控制与系统理论" '" '" & TextBox1.Text & "'"
cmd1.Parameters.Add(TempParam33)

TempParam44 = New SqlParameter("@Count", SqlDbType.Int, 4)
TempParam44.Direction = ParameterDirection.Output
cmd1.Parameters.Add(TempParam44)
sqlconn.Open()
cmd1.ExecuteNonQuery()
sqlconn.Close()
TextBox12.Text = cmd1.Parameters("@Count").Value.ToString()
'total= cmd1.Parameters("@Count").Value 为某一班级某一课程能参与算平均分的总人数
End Sub
  • 打赏
  • 举报
回复
tiantian88 2004-05-04
CREATE TABLE [TB_StudentScore] (
[StuProfession] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[StuNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[StuClassNo] [int] NULL ,
[StuName] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[GeneralScore] [int] NULL ,
[TestScore] [int] NULL ,
[SummaryScore] [int] NULL ,
[Memo] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[CourseName] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[StuClass] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [PK_TB_StuScore] PRIMARY KEY CLUSTERED
(
[StuNo]
) ON [PRIMARY]
) ON [PRIMARY]
GO


  • 打赏
  • 举报
回复
tiantian88 2004-05-04
谢谢大家的回复!谢谢!
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-04 09:41
社区公告
暂无公告