有返回值:函数执行结束,必须将执行的某个结果数据返回给调用者
创新互联建站是专业的内丘网站建设公司,内丘接单;提供网站制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行内丘网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
没有返回值:函数执行结束,没有返回任何结果给调用者
vb 还是vb.net这两种都有。不是说vb不带返回值而.net带返回值
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "proc name"
'参数名可以任意,但最好与存储过程的return一致
'默认值随便写
Dim ret As New SqlParameter("ret", 0)
'返回值类型才有下面一句
ret.Direction = ParameterDirection.ReturnValue
cmd.Parameters.Add(ret)
'其他的参数和一般的sql语句没区别
'...
cmd.ExecuteNonQuery()
'得到了ret
这两个函数都是错误的,首先C变量没有定义,其次作为Function函数没有Return返回结果。
所以两个函数运行起来不会返回任何结果!
像下面这个例子:返回值就是(obj Is Nothing),在VB.Net中最好使用Return (obj Is Nothing),而不是IsNothing=(obj Is Nothing)。
Public Function IsNothing(obj As Object) As Boolean
Return (obj Is Nothing)
End Function
一个比较简单的方法是返回DataTable,代码如下:
public Boolean SearchBySQL(string SQL, DataTable myData)
{
SqlConnection myConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
try
{
myConn.Open();
try
{
SqlCommand myComm = new SqlCommand(SQL, myConn);
SqlDataAdapter mySDA = new SqlDataAdapter();
mySDA.SelectCommand = myComm;
mySDA.Fill(myData);
return true;
}
catch (Exception ex)
{
return false;
}
}
catch (Exception ex)
{
return false;
}
finally
{
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
}
}
}
其中ConnectionString是Web.config里的连接字符串
还有一种方法是写存储过程返回所需参数
你的 sub过程这个是子过程,无返回值的,这里Form1_Load中b仍然 b=""
如果你想b="注释",将你的sub过程改成自定义函数,用b来接收返回值就行了,代码如下
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim a As String = "rem"
Dim b As String = ""
b = sub过程(b, a)
Me.Text = b '为什么“b”不是等于 "注释"
End Sub
Private Function sub过程(ByVal 输出 As String, ByRef 输入 As String) As String
If 输入 = "rem" Then
输出 = "注释"
End If
Return 输出
End Function