[英]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.