データベーステーブルがあります。このテーブルは頻繁に変更されません。しかし、そのテーブルからデータを取得する必要があります。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;
}