Rob*_*obz 3 c# asp.net list sqldatareader
我有一个像这样的连接的查询:
string cmdString = "select tblPackages.*, tblPackageTypes.Name from tblPackages join tblPackageTypes on tblPackages.TypeId = tblPackageTypes.Id";
Run Code Online (Sandbox Code Playgroud)
现在我使用这个SQL命令并返回像这样的datareader:
SqlCommand cmd = new SqlCommand(cmdString,con);
SqlDataReader dr;
Run Code Online (Sandbox Code Playgroud)
我想将数据读取器的值填充到列表中.我提到了这个链接,但我得不到我需要的东西.
我有从sql输出的以下列
Id, TypeId, AllowedSMS, TimeSpan, Price, TypeName.
Run Code Online (Sandbox Code Playgroud)
我只是想在列表中传递它们.请帮助我..我是asp.net的新手
mar*_*c_s 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; }
}
Run Code Online (Sandbox Code Playgroud)
当然,由于您没有定义这些列的数据类型,这只是一个猜测 - 您可能需要适应您的具体需求.
现在,您需要迭代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....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29590 次 |
| 最近记录: |