下面我有一个我想要创建的方法.该方法的总体目标是创建一个列表,在SQL中打开一个数据库,并将该信息转换为字符串.我遇到的问题是返回所有数据.我理解一个工作方法你需要某种类型的return语句,但是当我尝试返回列表时,它一直告诉我
无法隐式转换类型'System.Collections.Generic.List(Namespace).MyHome'到'(命名空间).MyHome
所以我的问题是,我可以返回列表,还是我必须创建另一个变量才能返回,或者我是否试图完全返回错误的内容?
以下是我正在研究的方法.为了解释,这个方法使用我创建的类,它保存我想要获取的数据的凭据.
private static MyHome GetUserDataFromMyHome(string username)
{
List<MyHome> myHomeInformation = new List<MyHome>();
using (SqlConnection connection = new SqlConnection(Properties.Settings.Default.MyHomeConnectionString))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = @"SELECT USER_NAME, EMAIL, FIRST_NAME, LAST_NAME, TRAVELER_UID FROM DATA_BASE";
connection.Open();
SqlDataReader reader = sqlError.ExecuteReader();
while (reader.Read())
{
MyHome userInformation = new MyHome();
foreach (MyHome item in myHomeInformation)
{
userInformation.myHomeUserName = Utilities.FromDBValue<string>(reader["USER_NAME"]);
userInformation.myHomeEmail = Utilities.FromDBValue<string>(reader["EMAIL"]);
userInformation.myHomeFirstName = Utilities.FromDBValue<string>(reader["FIRST_NAME"]);
userInformation.myHomeLastName = Utilities.FromDBValue<string>(reader["LAST_NAME"]);
userInformation.myHomeTravelerUID = Utilities.FromDBValue<string>(reader["TRAVELER_UID"]);
myHomeInformation.Add(userInformation);
}
}
}
return myHomeInformation;
}
Run Code Online (Sandbox Code Playgroud)
这是包含凭据的类:
class MyHome : IEnumerable<MyHome>
{
public string myHomeUserName { get; set; }
public string myHomeEmail { get; set; }
public string myHomeFirstName { get; set; }
public string myHomeLastName { get; set; }
public string myHomeTravelerUID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
更换
private static MyHome GetUserDataFromMyHome(string username)
Run Code Online (Sandbox Code Playgroud)
同
private static List<MyHome> GetUserDataFromMyHome(string username)
Run Code Online (Sandbox Code Playgroud)
返回类型应该是对象列表而不仅仅是对象