C#中的字符串参数

时间:2013-07-03 09:50:05

标签: c# asp.net

我有这个方法:

public static int ExecuteNonQuery(ref DbCommand command, out string ErrorMessage)
{
    ErrorMessage = String.Empty;
    DbTransaction tran = null;
    DbConnection conn = null;
    int result = 0;

在其他页面上访问时使用此方法。我以SQL命令的形式传递一个命令,我传递了一个查询,但是我没有得到out string的内容。这是其他人的代码,但我想将它用于插入查询的抽象目的。我应该如何得到errormessage参数,因为它说它是一个输出字符串。

我想在我的一个页面上这样做:

string Email = "example@example.com";
string Password = "Hello";
SqlCommand command = new SqlCommand("insert into J_example_Tbl(J_example_Email,J_example_Password) VALUES('"+Email+"','"+Password+"')");

PrimaryDBClass.ExecuteNonQuery(command, "Should I do like this");

2 个答案:

答案 0 :(得分:4)

关于

  

但我不知道这个字符串是什么

Out表示指向变量。 out关键字描述将实际变量位置复制到被调用方法的堆栈上的参数,其中可以重写这些相同的位置。这意味着调用方法将访问已更改的参数。

例如:如果您在test中声明了一个名为class1的变量,并希望更改其他类class2中的值,并且仍希望从class1获取更改后的值,您必须使用out关键字将class1发送到class2

在您的方法中意味着:

public static int ExecuteNonQuery(ref DbCommand command, out string ErrorMessage)

如果变量ErrorMessage发生任何变化,它将指向实际变量。因此,您将从ExecuteNonQuery()方法的外部获取更改的值。

答案 1 :(得分:1)

out参数可以这样使用:

string Email = "example@example.com";
string Password = "Hello";
SqlCommand command = new SqlCommand("insert into J_example_Tbl(J_example_Email,J_example_Password) VALUES('"+Email+"','"+Password+"')");
string error;
PrimaryDBClass.ExecuteNonQuery(command, out error);

if(error != null)
 ....

您应该以其他方式检查结果(例如检查返回值或其他内容)。看看Jon Skeet的建议。