访问从数据库创建列表的类

时间:2011-06-02 22:30:12

标签: c# asp.net

我有以下类,它基本上创建了一个类别列表(称为命令,我知道它很奇怪)

这是CommandDB.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.Common;
using System.Data.Sql;
using System.Data.SqlClient;

namespace TM_non_deploy
{
    public partial class CommandDB
    {
        private static string connectionString = "blah";

        public static List<Command> GetCommands()
        {
            List<Command> commandList = new List<Command>();

            DbConnection connection = new SqlConnection();
            SqlCommand cmd = (SqlCommand)connection.CreateCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "sp_tm_commands";

            connection.ConnectionString = GetConnectionString();
            connection.Open();

            SqlDataReader reader = null;
            reader = cmd.ExecuteReader();

            Command command;

            while (reader.Read())
            {
                command = new Command();

                command.ID = reader.GetOrdinal("id");
                command.Name = reader["name"].ToString();

                commandList.Add(command);
            }

            reader.Close();
            connection.Close();

            return commandList;

        }

        private static string GetConnectionString()
        {
            return connectionString;
        }

    }
}

我的问题希望非常简单,我如何在我的主页面中访问此列表,以便它调用该函数并返回所有命令,以便我可以通过它们进行迭代?我认为它可能是List<CommandDB> commandList = new List<CommandDB.>GetCommands();之类的东西,但我真的没有任何运气通过msdn搞清楚。

4 个答案:

答案 0 :(得分:3)

此方法是静态的,因此应该像这样调用

 List<Command> commandList = CommandDB.GetCommands();

答案 1 :(得分:2)

List<Command> myCommands = CommandDB.GetCommands();
foreach(Command com in myCommands)
{
    //Do stuff
}

我认为这是您正在寻找的语法。

答案 2 :(得分:2)

var commandList = CommandDB.GetCommands(); //implicit type detection by compiler

答案 3 :(得分:1)

  

静态成员属于该类型   本身而不是具体的   对象

     

无法引用静态成员   通过一个实例。相反,它是   通过类型名称引用。

List<Command> commandList = CommandDB.GetCommands();

请参阅static (C# Reference)