-1

データベーステーブルがあります。このテーブルは頻繁に変更されません。しかし、そのテーブルからデータを取得する必要があります。i 要件は、アプリケーションの起動時に、そのテーブルのすべてのレコードを読み取り、それをデータ テーブルに格納することです。したがって、必要に応じて、データベースではなくデータテーブルからレコードをクエリするだけです。私はすでにコードを書いています。今私の質問は次のとおりです: ** **メソッドを呼び出すとき、このコードは毎回データベースにクエリを実行し、毎回 DataTable を作成しますか、それとも最初に db からデータを 1 回だけフェッチし、アプリケーションが閉じるまでデータテーブルに保存しますか?* ***そうでない場合は、整理するのを手伝ってください。

static void Main(string[] args)
{
    String RoomNumber = GetTable("xi");
    Console.WriteLine(RoomNumber);
    Console.ReadLine();
}

static string GetTable(string ShortCode)
{
    DataTable table = new DataTable();
    DataColumn column;
    DataRow row;

    column = new DataColumn();
    column.DataType = Type.GetType("System.String");
    column.ColumnName = "Class";
    table.Columns.Add(column);

    column = new DataColumn();
    column.DataType = Type.GetType("System.String");
    column.ColumnName = "RoomNumber";
    table.Columns.Add(column);

    SqlConnection thisConnection = new SqlConnection(conn);
    thisConnection.Open();

    SqlCommand thisCommand = thisConnection.CreateCommand();
    thisCommand.CommandText = "SELECT Class,RoomNumber FROM Section ";
    SqlDataReader thisReader = thisCommand.ExecuteReader();
    while (thisReader.Read())
    {
        row = table.NewRow();

        row["Class"] = thisReader["Class"].ToString();
        row["RoomNumber"] = thisReader["RoomNumber"].ToString();
        table.Rows.Add(row);
    }
    thisConnection.Close();

    DataRow[] result = table.Select("Class='" + Class + "'");
    foreach (DataRow dataRow in result)
    {
        RoomNumber = dataRow[1].ToString();
        //Console.WriteLine("{0}, {1}", dataRow[0], dataRow[1]);
    }

    //Console.WriteLine(RoomNumber);

    return RoomNumber;
}
4

1 に答える 1

0

これにより、プログラムの開始時にデータベースから DataTable にデータが読み込まれます。他の場所で GetTable メソッドを呼び出さないと仮定すると、一度だけ実行されます。

于 2013-09-16T08:37:57.663 に答える