| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3937 人关注过本帖
标题:SqlParameter 问题
只看楼主 加入收藏
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
结帖率:85.71%
收藏
 问题点数:0 回复次数:4 
SqlParameter 问题
我想学习一下关于SqlParameter 执行SQL,但下面不知到出错在哪。望大家指点
程序代码:
Public Class SQLHelper
Public Function ExecuteDataTableSP(ByVal strSQLSP As String, ByVal params() As SqlParameter) As DataTable
        Dim oconn As SqlConnection = GetConnection()
        Dim command As New SqlCommand(strSQLSP, oconn)
        command.CommandType = CommandType.text'为何StoredProcedure不能执行?改为text就完全没问题了
        Dim dt As New DataTable
        Dim da As New SqlDataAdapter(command)
        For i As Integer = 0 To params.Length - 1
            da.SelectCommand.Parameters.Add(params(i))
        Next
        da.Fill(dt)
        da.Dispose()
        oconn.Close()
        oconn.Dispose()
        command.Dispose()
        Return dt
    End Function
End Class

sub ExecuteSql()

Dim SqlCmd As SQLHelper = New SQLHelper
        Dim paras As SqlParameter() = {New SqlParameter("@Model_Name", CStr(TextBox1.Text)),
                                       New SqlParameter("@Part_Name", CStr(TextBox2.Text)),
                                       New SqlParameter("@BuildStep", CStr(TextBox3.Text)),
                                       New SqlParameter("@Per_Use", CInt(TextBox4.Text))}

        Dim StrSql As String = "Select * from KanBanBom where Model_Name = @Model_Name and Part_Name = @Part_Name and BuildStep = @BuildStep"
        Dim myTab As DataTable = SqlCmd.ExecuteDataTableSP(StrSql, paras)
        If myTab.Rows.Count > 0 Then MsgBox("Check your data again", MsgBoxStyle.Information) : Exit Sub
end sub
'不知怎么老出错



[此贴子已经被作者于2016-12-14 16:29编辑过]

2016-12-14 16:25
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
我记得你提出过类似的问题。
楼主的代码虽然没有语法上的问题,但并不是调用存储过程。
指定 = CommandType.StoredProcedure时,必须同时指定command的CommandText(内置或用户定义的存储过程名称)
楼主的代码实际上并未调用服务器端的存储过程,只是传递了一个查询命令,与"Select * from KanBanBom"传递到服务器没有本质区别。
至于你最后提到不知怎么老出错,估计与传递的参数的类型、长度、大小有关。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-12-16 18:43
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 2楼 不说也罢
谢谢版主解释,我也一直在研究SQL的参数调用,想把一些调用写在数据库而不是在程序中,再次感谢!
2016-12-20 11:45
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
楼主可以参考下这个博客,http://blog.

我的操作数据库的类,都自己设计编写。调用存储过程,能大幅提高数据集返回到客户端的效率。不过,如果你不是为了B/S或C/S程序而设计,则可忽略之。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-12-21 15:22
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 4楼 不说也罢
谢谢分享,有时自己懒,就直接用别人写好的。
2016-12-28 17:03
快速回复:SqlParameter 问题
数据加载中...
 
   



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

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