[英]Getting column info from db with C#
在PHP中,我可以像这样从数据库检索信息:
<?php
$sql = "SELECT * FROM users";
$result = mysql_query($sql);
$data = array();
while($row = mysql_fetch_assoc($result))
{
$data[] = $row;
}
我试图在C#中完成同样的事情:
OdbcCommand cmd = new OdbcCommand("SELECT * FROM users WHERE id = @id");
cmd.Parameters.Add("@id", id);
OdbcDataReader reader = cmd.ExecuteReader();
Dictionary<string, string> data = new Dictionary<string, string>();
while (reader.Read())
{
data.Add("id", reader.GetString(0));
data.Add("username", reader.GetString(1));
data.Add("firstName", reader.GetString(2));
}
return data;
是否可以按名称引用表中的列,而不必经历所有这些麻烦?
您可以使用OdbcDataAdapter类来填充DataSet
,这可能会更简单一些。
是的,但是很慢。 当然,这并不比您的方法慢,但是很慢-我会标记您的整个代码进行审核...
如果那不可能-请阅读说明。 有一个“ GetOrdinal”方法,它带有一个字段名,然后返回字段索引。
也就是说,整个代码是完全冗余的。 看一下适当的数据访问层,或者至少看一下BLTOOLKIT-您可以将所有代码移动到一个抽象方法中,其余的将自动生成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.