2012-07-24 41 views
0

如何傳遞多個值,我用vb.net在一個變量的函數在vb.net

我已經在我的課(1類)功能文件時即保存。這個Save函數有3個參數。現在我正在使用以下方法發送參數。

Private Sub cmdSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSave.Click 
     dim p as new class1 
     p.save(txtempid.text,txtempname.text,txtage.text) 
     messagebox.show("Successfully Saved") 
End sub 

的Class1:

imports system.data.sqlclient 
imports system.configuration 
public class class1 
    Dim constr As String 
    Dim con As SqlConnection 
    Dim cmd As SqlCommand 

public function save(byval s as string,byval s1 as string,byval s2 as string) 
    constr = ConfigurationManager.AppSettings("con") 
    con = New SqlConnection(constr) 
    con.Open() 
    cmd=new sqlcommand("Emp_insert",con) 
    cmd.commandtype=commandtype.storedprocedure 
    cmd.Parameters.Add("@EmployeeID", SqlDbType.BigInt).Value = s 
    cmd.Parameters.Add("@EmployeeName", SqlDbType.VarChar).Value = s1 
    cmd.Parameters.Add("@Age", SqlDbType.BigInt).Value = s2 
    cmd.executenonquery() 
    cmd.dispose() 
    con.close() 
    return 0 
End function 
End Class 

這沒關係,但是當我有更多的論據是numerber很難。任何人都可以建議我更好的方式嗎?

回答

1

修改

public function save(parameters as Dictionary(Of string, object)) as int 
for each item as KeyvaluePair(Of string, object) in parameters 
cmd.Parameters.AddWithValue("@" & item.Key, item.Value) 
next 
return cmd.ExecuteNonQuery() 
end function 

您可以使用Tuple

public sub DoSomething(Tuple (Of string, string, integer) myparameter) 
dim firstItem as string = myparameter.Item1 
dim secondItem as string = myparameter.Item2 
dim thirdItem as integer = myparameter.Item3 
end sub 

sub main() 
Dim tuple as New Tuple(Of string, string, integer)("First","Second", 100) 
DoSomething(tuple) 
end sub 
+0

感謝您的回覆,我是新來vb.net。所以我無法理解這個元組的概念。你可以深入解釋一下,或者請指導我如果有其他方法 – 2012-07-24 05:11:35

+0

你可以創建一個Tuple,並將tuple變量傳遞給該函數。 – Anuraj 2012-07-24 05:17:53

+0

我認爲元組是從框架4支持的。但是我使用framework2 – 2012-07-24 05:31:10

相關問題