我正在处理我在 .net 4 和 MVC 3 上构建的项目之一,除了我对代码改进和特别是关于数据库连接的效率几乎没有疑问之外,情况都很好,情况是:
我在连接到数据库并从中检索信息的模型类中起作用,由于要求很少,必须使用多个查询来检索必须由函数返回的整体结果,所以为了实现这一点,我目前正在做正在创建三个 sql 命令并运行它们并从它们中一一填充数据集。
但是我有一种直觉,这可能不是最好的可用和有效的方法,而且这也可能会耗费时间/资源,对数据库逐个运行多个查询,这可能是多余的。
所以我想从你们那里得到专家意见,我做得对还是有更好更快的方法来实现这一点?
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;
}