public ListProduct RunProcGetVO(string sql, string str)
{
SqlConnection conn = connDB.CreateConn();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@str", str);
cmd.Connection = conn;
SqlDataAdapter sda = new SqlDataAdapter();
DataSet ds = new DataSet();
sda.SelectCommand = cmd;
conn.Open();
sda.Fill(ds);
//从DataSet对象中读取数据,赋值给VO
ListProduct myListProduct = new ListProduct();
DataTableReader reader = ds.CreateDataReader();
do
{
while (reader.Read())
{
myListProduct.PK_Product = reader[0].ToString ();
myListProduct.RName = reader[1].ToString ();
myListProduct.RType = reader[2].ToString();
myListProduct.Kind = reader[3].ToString();
myListProduct.Item = reader[4].ToString();
myListProduct.Unit = reader[5].ToString();
myListProduct.Value = Convert.ToSingle(reader[6]);
myListProduct.Percent =Convert .ToSingle( reader[7]);
myListProduct.GYear = reader[8].ToString();
myListProduct.GMonth = reader[9].ToString();
myListProduct.Operator = reader[10].ToString();
myListProduct.TS =Convert .ToDateTime ( reader[11]);
}
}
while (reader.NextResult());
conn.Close();
return myListProduct;
}
写完之后发现返回的只是记录集的最后一条记录,但我想要所有的记录,又不能用DataTable,怎么办?
{
SqlConnection conn = connDB.CreateConn();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@str", str);
cmd.Connection = conn;
SqlDataAdapter sda = new SqlDataAdapter();
DataSet ds = new DataSet();
sda.SelectCommand = cmd;
conn.Open();
sda.Fill(ds);
//从DataSet对象中读取数据,赋值给VO
ListProduct myListProduct = new ListProduct();
DataTableReader reader = ds.CreateDataReader();
do
{
while (reader.Read())
{
myListProduct.PK_Product = reader[0].ToString ();
myListProduct.RName = reader[1].ToString ();
myListProduct.RType = reader[2].ToString();
myListProduct.Kind = reader[3].ToString();
myListProduct.Item = reader[4].ToString();
myListProduct.Unit = reader[5].ToString();
myListProduct.Value = Convert.ToSingle(reader[6]);
myListProduct.Percent =Convert .ToSingle( reader[7]);
myListProduct.GYear = reader[8].ToString();
myListProduct.GMonth = reader[9].ToString();
myListProduct.Operator = reader[10].ToString();
myListProduct.TS =Convert .ToDateTime ( reader[11]);
}
}
while (reader.NextResult());
conn.Close();
return myListProduct;
}
写完之后发现返回的只是记录集的最后一条记录,但我想要所有的记录,又不能用DataTable,怎么办?
DataTableReader reader = ds.CreateDataReader();
do
{
while (reader.Read())
{
ListProduct myListProduct = new ListProduct();
myListProduct.PK_Product = reader[0].ToString ();
myListProduct.RName = reader[1].ToString ();
myListProduct.RType = reader[2].ToString();
myListProduct.Kind = reader[3].ToString();
myListProduct.Item = reader[4].ToString();
myListProduct.Unit = reader[5].ToString();
myListProduct.Value = Convert.ToSingle(reader[6]);
myListProduct.Percent =Convert .ToSingle( reader[7]);
myListProduct.GYear = reader[8].ToString();
myListProduct.GMonth = reader[9].ToString();
myListProduct.Operator = reader[10].ToString();
myListProduct.TS =Convert .ToDateTime ( reader[11]);
myListProducts.Add(myListProduct);
}
}