.net 4 および MVC 3 で構築された私のプロジェクトの 1 つに取り組んでいますが、特にデータベース接続に関するコードの改善と効率についてほとんど疑いがないことを除けば、状況は良好です。シナリオは次のとおりです。
私は、データベースに接続してそこから情報を取得するモデルクラスで機能しました。関数によって返される必要がある全体的な結果は、複数のクエリを使用して取得する必要があるため、いくつかの要件があるため、これを達成するために現在行っていること3 つの SQL コマンドを作成して実行し、それらからデータ セットを 1 つずつ入力しています。
しかし、これは最善の利用可能で効率的な方法ではない可能性があることに加えて、データベースに対して複数のクエリを1つずつ実行する時間/リソースが冗長になる可能性があるという直感があります。
それで、私はそれを正しくやっているのですか、それともこれを達成するためのより良い迅速な方法があるのでしょうか?
public string[] GetData()
{
…
const string cmdString = "Select TOP 3 item.Id FROM design WHERE status=1 ORDER BY submittedOn Desc";
const string cmdString2 = "Select TOP 6 item.Id FROM design WHERE status=1 ORDER BY orders desc;";
const string cmdString3 = "SELECT TOP 9 item.Id FROM design WHERE status=1 ORDER BY NewID()";
…
var conn = new SqlConnection(conString.ConnectionString);
var mySqlDataAdapter = new SqlDataAdapter();
var myDataSet = new DataSet();
int totalRows = 1;
try
{
mySqlDataAdapter = new SqlDataAdapter(cmdString, conn);
mySqlDataAdapter.Fill(myDataSet, "DataTble");
mySqlDataAdapter = new SqlDataAdapter(cmdString2, conn);
mySqlDataAdapter.Fill(myDataSet, "DataTble");
mySqlDataAdapter = new SqlDataAdapter(cmdString3, conn);
mySqlDataAdapter.Fill(myDataSet, "DataTble");
totalRows = myDataSet.Tables["DataTble"].Rows.Count;
status = true;
}
catch (Exception exp)
{
status = false;
totalRows = 0;
}
var dataResults = new string[totalRows];
if (status)
{
//putting the results into an Array() and returning that Array.
}
conn.Dispose();
mySqlDataAdapter.Dispose();
myDataSet.Dispose();
return dataResults;
}