C# 静态类方法不';t返回值
我有以下代码(这只是为了演示,我不会粘贴所有行) 然后我在代码隐藏文件(*aspx.cs)中使用它C# 静态类方法不';t返回值,c#,asp.net,arrays,C#,Asp.net,Arrays,我有以下代码(这只是为了演示,我不会粘贴所有行) 然后我在代码隐藏文件(*aspx.cs)中使用它 受保护的无效搜索\u单击(对象发送者,事件参数e) { string[]information=SearchAndEdit.SearchAndDisplay(searchBox.Text); for(int i=0;i。在搜索和显示中设置一个断点并进入它。可能会告诉你发生了什么。要重新表述/测试@Ernest指出的内容:你能用上面显示的代码重现问题吗?我想你也漏掉了if/while(info.Re
受保护的无效搜索\u单击(对象发送者,事件参数e)
{
string[]information=SearchAndEdit.SearchAndDisplay(searchBox.Text);
for(int i=0;i
但是,代码不返回任何内容(labelname为空),甚至不会引发异常。知道陷阱在哪里吗?谢谢 试试这个
if(string.IsNullOrEmpty(code))
{
field[0] = "Empty box";
}
你换了职位。你应该吃这个
string SQLconnection = WebConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
string[] field;
field = new string[6];
field[0] = "Nothing to search"; // add here in case string is null
if (!string.IsNullOrEmpty(code))
{
string SQLSelect = "SELECT user_name, user_surname, user_code, user_group, user_password FROM Users WHERE user_code=@user_code";
SqlConnection connect = new SqlConnection(SQLconnection);
SqlCommand search = new SqlCommand(SQLSelect, connect);
search.Parameters.Clear();
search.Parameters.AddWithValue("@user_code", code);
try
{
connect.Open();
SqlDataReader info = search.ExecuteReader();
if (info.HasRows)
{
field[0] = "Data loaded";
}
}
catch
{
// error handle here problem with connection
}
finally
{
connect.Close();
}
}
return field;
现在,您已经向我们展示了更多代码:如果SQL查询返回0行,那么返回的数组将是空的,正如您所观察到的。因此,您为
user\u code
传递的值似乎不在数据库中,或者可能是错误的数据类型。您应该尝试使用调试器逐步完成此操作。在这种情况下,字段
数组将返回一个包含六个空字符串元素的数组:如果code
不是空字符串,将执行else
子句,如果SQL查询不返回任何行,则字段
将永远不会收到任何字符串值。我猜这就是正在发生的事情。如果由于某种原因无法使用调试器(?),则始终可以修改代码:
if (info.HasRows) {
field[0] = "Data loaded";
} else {
field[0] = "No data found";
}
说“这只是为了演示,我不会粘贴所有行”的问题在于,您总是忽略导致问题的部分。这里没有任何错误,所以不管你错在哪里,你应该考虑使用<代码> String。ISNulLoWeleSePeCe()/<代码>而不是<代码> = =“”/COD>。在搜索和显示中设置一个断点并进入它。可能会告诉你发生了什么。要重新表述/测试@Ernest指出的内容:你能用上面显示的代码重现问题吗?我想你也漏掉了if/while(info.Read())部分吧?如果sql数据读取器有行,则代码将始终填充返回数组。因此,您可能没有以某种方式正确地读取它,或者您的查询实际上没有返回任何行(更有可能是因为HasRows if语句)。
string SQLconnection = WebConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
string[] field;
field = new string[6];
field[0] = "Nothing to search"; // add here in case string is null
if (!string.IsNullOrEmpty(code))
{
string SQLSelect = "SELECT user_name, user_surname, user_code, user_group, user_password FROM Users WHERE user_code=@user_code";
SqlConnection connect = new SqlConnection(SQLconnection);
SqlCommand search = new SqlCommand(SQLSelect, connect);
search.Parameters.Clear();
search.Parameters.AddWithValue("@user_code", code);
try
{
connect.Open();
SqlDataReader info = search.ExecuteReader();
if (info.HasRows)
{
field[0] = "Data loaded";
}
}
catch
{
// error handle here problem with connection
}
finally
{
connect.Close();
}
}
return field;
if (info.HasRows) {
field[0] = "Data loaded";
} else {
field[0] = "No data found";
}