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

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查询是是能的到正确的结果的!

...全文
116 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
谢谢大家的回复!谢谢!

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧