簡體   English   中英

使用C#從數據庫獲取列信息

[英]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 ,這可能會更簡單一些。

是的,但是很慢。 當然,這並不比您的方法慢,但是很慢-我會標記您的整個代碼進行審核...

  • 不要求輸入“ *”,請輸入字段。 良好的SQL慣例-正如您所知的字段,您猜怎么着,您不必猜測它們。 最重要的是,您假設ID為0,用戶名字段為1 ...

如果那不可能-請閱讀說明。 有一個“ GetOrdinal”方法,它帶有一個字段名,然后返回字段索引。

也就是說,整個代碼是完全冗余的。 看一下適當的數據訪問層,或者至少看一下BLTOOLKIT-您可以將所有代碼移動到一個抽象方法中,其余的將自動生成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM