我有一个像这样的连接的查询:
string cmdString = "select tblPackages.*, tblPackageTypes.Name from tblPackages join tblPackageTypes on tblPackages.TypeId = tblPackageTypes.Id";
现在我使用这个SQL命令并取回像这样的数据加载器:
SqlCommand cmd = new SqlCommand(cmdString,con);
SqlDataReader dr;
我想将数据读取器的值填充到列表中。我提到了这个link,但我得不到我需要的东西。
我有以下来自sql
的列输出Id, TypeId, AllowedSMS, TimeSpan, Price, TypeName.
我只是想在列表中传递它们。请帮帮我..我是asp.net的新手
答案 0 :(得分:10)
嗯,在您的情况下,您需要一个可以保存列的类:
public class MyClass
{
public int Id { get; set; }
public int TypeId { get; set; }
public bool AllowedSMS { get; set; }
public string TimeSpan { get; set; }
public decimal Price { get; set; }
public string TypeName { get; set; }
}
当然,由于您没有定义这些列的数据类型,这只是猜测 - 您可能需要适应您的具体需求。
现在,您需要遍历SqlDataReader
并从数据读取器中获取值并填充新创建的类:
using (SqlDataReader dr = cmd.ExecuteReader())
{
List<MyClass> results = new List<MyClass>();
while(dr.Read())
{
MyClass newItem = new MyClass();
newItem.Id = dr.GetInt32(0);
newItem.TypeId = dr.GetInt32(1);
newItem.AllowedSMS = dr.GetBoolean(2);
newItem.TimeSpan = dr.GetString(3);
newItem.Price = dr.GetDecimal(4);
newItem.TypeName = dr.GetString(5);
results.Add(newItem);
}
}
// return the results here, or bind them to a gridview or something....