我有一个问题:是否可以从字符串表中选择数据(不使用ToString方法)行?
不使用SqlDataReader
并且表现良好。
例如,读取所有表并将数据放入字符串type.1 element = 1row
的List中SqlConnection conn = new SqlConnection("Data Source=;Initial Catalog=;Persist Security Info=True;User ID=;Password=");
conn.Open();
SqlCommand command = new SqlCommand("Select id from [table1] where name=@zip", conn);
command.Parameters.AddWithValue("@zip","india");
// don't use reader
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
//List<string> = String.Format(row properties...)
}
}
对不起解释
答案 0 :(得分:4)
当然,你可以施展它:
SELECT id = CAST(id AS varchar(20)) FROM ...;
现在您不需要在客户端进行转换,并且可以使用:
var idList = new List<string>();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
idList.Add(reader.GetString(0));
}
}
为了它的价值,如果你以后想要一个单行使用这个扩展名:
public static class DbExtensions
{
public static List<T> ToList<T>(this IDataReader reader, int columnOrdinal = 0)
{
var list = new List<T>();
while (reader.Read())
list.Add((T) reader[columnOrdinal]);
return list;
}
}
现在您可以使用此代码:
idList = reader.ToList<string>();