我有这个代码而且不起作用。有谁知道为什么?
它没有返回任何数据,但如果在SQL Server中运行查询,它将返回数据。
using (SqlConnection connection = new SqlConnection(_dbContext.GetConnectionString()))
{
using (SqlCommand command = new SqlCommand())
{
StringBuilder stringQuery = new StringBuilder();
stringQuery.Append(" SELECT cd_material, ds_material");
stringQuery.Append(" FROM tbl_materiais");
stringQuery.Append(" WHERE ds_material like @Name");
command.Parameters.AddWithValue("@Name", "%" + name + "%");
command.CommandText = stringQuery.ToString();
command.CommandType = System.Data.CommandType.Text;
command.Connection = connection;
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
_product = new ProductSell();
((IProduct)_product).ID = reader.GetFieldValue<int>(0);
((IProduct)_product).Name = reader.GetFieldValue<string>(1);
listProduct.ToList<IProduct>().Add(_product);
}
}
}
}
答案 0 :(得分:2)
什么是listProduct
,为什么称它为ToList<>()
?
listProduct.ToList<IProduct>()
返回List<IProduct>
的新实例,该实例在此行执行后会被遗忘。在此返回列表上调用.Add(_product)
不会影响listProduct
。
答案 1 :(得分:0)
我的问题留在这里
while (reader.Read())
{
DoSomething();
}
reader.Read()从不被读取,我的表很简单,只有属性:cd_material(int),ds_material(varchar)。并且不会触发异常。 这个查询:
SELECT cd_material, ds_material FROM tbl_materiais WHERE ds_material = '%produto%'
如果在所有者数据库(sql management)
中,则返回许多行