c# - SQL查询结果到数组
问题描述
我编写了以下内容以尝试执行 sql 查询并将结果存储在数组中:
public static ArrayList DbQueryToArry()
{
string SqlCString = myConnString;
SqlConnection connection = null;
ArrayList valuesList = new ArrayList();
connection = new SqlConnection(SqlCString);
connection.Open();
SqlCommand command = new SqlCommand("Select CLIENTNO, ACCOUNT_Purpose from audit.ACCOUNTS_AUDIT", connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
valuesList.Add(Convert.ToInt32(reader[0].ToString()));
}
return valuesList;
}
但是运行以下
var myArray = DbQueryToArry();
Console.WriteLine(myArray.ToString());
不返回查询结果..
解决方案
您将需要手动加入它们string.Join
或类似的东西:
使用每个元素或成员之间的指定分隔符连接指定数组的元素或集合的成员。
Console.WriteLine(string.Join(",",myArray.ToArray()));
您的版本不起作用的原因是,Console.Writeline
对于不同的类型有一堆重载,但是WriteLine(Object)
当它找不到特定的分辨率匹配时它会退回。
源代码WriteLine(Object value)
如下(可以在这里找到)。
public virtual void WriteLine(Object value) {
if (value==null) {
WriteLine();
}
else {
// Call WriteLine(value.ToString), not Write(Object), WriteLine().
// This makes calls to WriteLine(Object) atomic.
IFormattable f = value as IFormattable;
if (f != null)
WriteLine(f.ToString(null, FormatProvider));
else
WriteLine(value.ToString());
}
}
注意它是如何调用的value.ToString()
?
返回表示当前对象的字符串。
评论
Object.ToString 是 .NET Framework 中的主要格式化方法。它将对象转换为其字符串表示形式,以便它适合显示。
AnArrayList
对 ToString() 没有重载,它能够预测您想要显示的内容,因此它依赖于默认值。
ToString 方法的默认实现返回 Object 类型的完全限定名
这让我想到了下一点,不要使用ArrayList
,使用通用数组int[]
,否则List<int>
你会发现它更有趣和更有价值(有趣的 100 级)
推荐阅读
- mongodb - mongodb 可以在 $unionWith 中使用 $push
- python - Discord.py 添加一个命令来存储数据
- spring-boot - 带有 Axon 的 Spring Boot JPA
- steam - 如何在 ubuntu 中提供安装驱动器的路径
- javascript - new RegExp() 构造函数的反面是什么?
- python - 如何计算熊猫数据框中列中特定值的平均值?
- laravel - Laravel 在到期日、3 天后、一周后从不同用户到不同客户的自动发票提醒电子邮件
- javascript - 如何在发送前为两个同名字段创建实时投注?
- java - 如何在硒中输入向下搜索箭头并按回车键
- java - 如何使用自定义模型在java中获取列表索引