当我从sql db读取数据并想要将所有项目添加到下面的列表(即eonumlist)中时。我是否需要专门指定每个字段,还是可以批量分配这些数据?我这样做是为了报告,并希望快速获取数据。也许我应该使用数据集。我有40多个字段要加入报告,并希望快速完成。寻找建议。
public static List<EngOrd> GetDistinctEONum()
{
List<EngOrd> eonumlist = new List<EngOrd>();
SqlConnection cnn = SqlDB.GetConnection();
string strsql = "select distinct eonum " +
"from engord " +
"union " +
"select 'zALL' as eonum " +
"order by eonum desc";
SqlCommand cmd = new SqlCommand(strsql, cnn);
try
{
cnn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
EngOrd engord = new EngOrd();
engord.EONum = reader["eonum"].ToString();
engord.Name = reader["name"].ToString();
engord.Address = reader["address"].ToString();
eonumlist.Add(engord);
}
reader.Close();
}
catch (SqlException ex)
{
throw ex;
}
finally
{
cnn.Close();
}
return eonumlist;
}
答案 0 :(得分:0)
我做类似的事情,将数据从数据库存储到组合框中。
要执行此操作,请使用以下代码。
public static void FillDropDownList(System.Windows.Forms.ComboBox cboMethodName, String myDSN, String myServer)
{
SqlDataReader myReader;
String ConnectionString = "Server="+myServer+"\\sql2008r2;Database="+myDSN+";Trusted_Connection=True;";
using (SqlConnection cn = new SqlConnection(ConnectionString))
{
cn.Open();
try
{
SqlCommand cmd = new SqlCommand("select * from tablename", cn);
using (myReader = cmd.ExecuteReader())
{
while (myReader.Read())
{
cboMethodName.Items.Add(myReader.GetValue(0).ToString());
}
}
}
catch (SqlException e)
{
MessageBox.Show(e.ToString());
return;
}
}
}
这将连接到数据库并读取表的每条记录,将第0列(名称)中的值添加到组合框中。
我认为你可以用列表做类似的事情,确保索引值正确。
答案 1 :(得分:-1)
将数据存储为xml,然后将xml反序列化到列表中。