如何 return 来自方法的字符串?
How to return a string from a method?
问题
为什么我不能通过我的方法 SQLSelection()
return 我的变量 SQL
?
我已声明它,然后重新分配它,然后 return编辑它。然而,这不起作用,并且伴随着多条错误消息,没有任何内容是 returned?
代码
private void SQLSelection()
{
String SQL = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status")
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @status";
}
else if (comboBox1.Text == "@username" & comboBox2.Text == "All")
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @username";
}
else
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE username = @username and status = @status";
}
return String SQL;
}
您的 return 类型是空的,不是字符串。将其更改为:
private string SQLSelection()
void 是对某物执行的 "returnless" 操作,不 "return" 支持 return 语句的值。如果您尝试 return 一个值,您会遇到编译器错误。
此外,您不断重新声明
String SQL
在每个方法中。通过删除每个 if 语句中的 String 声明,只需将值分配给 SQL 即可。
最后,您的 return 语句再次尝试重新声明变量。
您得到的方法应该如下所示:
private string SQLSelection()
{
String SQL = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @status";
}
else if (comboBox1.Text == "@username" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @username";
}
else
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE username = @username and status = @status";
}
return SQL;
}
你的方法签名说返回 void
,这意味着方法 returns 什么都没有。将其更改为:
private string SqlSelection()
SqlSelection
还有一些问题,我什至怀疑它能否编译。试试像
private string SqlSelection()
{
string sql = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
sql = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status") }
...
return sql;
}
您的代码至少包含以下错误:
你的方法的 return 类型被声明为 void
(意味着它没有任何 return 值),所以你不能 return任何东西。将 return 类型更改为 string
:
private string SQLSelection()
您正试图在分配给它的地方和 return 语句中重新声明 SQL
变量。例如,而不是:
String SQL = "…";
应该是:
SQL = "…";
而不是:
return String SQL;
应该是:
return SQL;
(String SQL;
是声明类型 string
的变量 SQL
的语法。您在方法的开头就声明了变量;您不需要稍后重新声明。)
1) 您的 return 类型应该是 String 而不是 void。
私有字符串 SQLSelection() {
2) 不要在 if 语句中重新声明变量:
SQL = "SELECT ..";
3)您不需要 return 语句中的字符串:
return SQL;
你也可以像这样
在 return 之前检查你的变量
private string SQLSelection()
{
private String SQL = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @status";
}
else if (comboBox1.Text == "@username" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @username";
}
else
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE username = @username and status = @status";
}
if(SQL != null)
return SQL;
else
return "any phrase you want ";
}
问题
为什么我不能通过我的方法 SQLSelection()
return 我的变量 SQL
?
我已声明它,然后重新分配它,然后 return编辑它。然而,这不起作用,并且伴随着多条错误消息,没有任何内容是 returned?
代码
private void SQLSelection()
{
String SQL = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status")
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @status";
}
else if (comboBox1.Text == "@username" & comboBox2.Text == "All")
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @username";
}
else
{
String SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE username = @username and status = @status";
}
return String SQL;
}
您的 return 类型是空的,不是字符串。将其更改为:
private string SQLSelection()
void 是对某物执行的 "returnless" 操作,不 "return" 支持 return 语句的值。如果您尝试 return 一个值,您会遇到编译器错误。
此外,您不断重新声明
String SQL
在每个方法中。通过删除每个 if 语句中的 String 声明,只需将值分配给 SQL 即可。
最后,您的 return 语句再次尝试重新声明变量。
您得到的方法应该如下所示:
private string SQLSelection()
{
String SQL = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @status";
}
else if (comboBox1.Text == "@username" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @username";
}
else
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE username = @username and status = @status";
}
return SQL;
}
你的方法签名说返回 void
,这意味着方法 returns 什么都没有。将其更改为:
private string SqlSelection()
SqlSelection
还有一些问题,我什至怀疑它能否编译。试试像
private string SqlSelection()
{
string sql = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
sql = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status") }
...
return sql;
}
您的代码至少包含以下错误:
你的方法的 return 类型被声明为
void
(意味着它没有任何 return 值),所以你不能 return任何东西。将 return 类型更改为string
:private string SQLSelection()
您正试图在分配给它的地方和 return 语句中重新声明
SQL
变量。例如,而不是:String SQL = "…";
应该是:
SQL = "…";
而不是:
return String SQL;
应该是:
return SQL;
(
String SQL;
是声明类型string
的变量SQL
的语法。您在方法的开头就声明了变量;您不需要稍后重新声明。)
1) 您的 return 类型应该是 String 而不是 void。
私有字符串 SQLSelection() {
2) 不要在 if 语句中重新声明变量:
SQL = "SELECT ..";
3)您不需要 return 语句中的字符串:
return SQL;
你也可以像这样
在 return 之前检查你的变量private string SQLSelection()
{
private String SQL = null;
if (comboBox1.Text == "All" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status in ('New','Hold')";
}
else if (comboBox1.Text == "All" & comboBox2.Text == "@status")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @status";
}
else if (comboBox1.Text == "@username" & comboBox2.Text == "All")
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE status = @username";
}
else
{
SQL = "SELECT stationID, LocationName, plandate, username, status FROM dbo.joblist WHERE username = @username and status = @status";
}
if(SQL != null)
return SQL;
else
return "any phrase you want ";
}