我有这个方法:
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");
答案 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的建议。