public static DataTable GetDataTable(SqlCommand sqlCmd)
{
DataTable tblMyTable = new DataTable();
DataSet myDataSet = new DataSet();
try
{
//1. Create connection
mSqlConnection = new SqlConnection(mStrConnection);
//2. Open connection
mSqlConnection.Open();
mSqlCommand = new SqlCommand();
mSqlCommand = sqlCmd;
//3. Assign Connection
mSqlCommand.Connection = mSqlConnection;
//4. Create/Set DataAdapter
mSqlDataAdapter = new SqlDataAdapter();
mSqlDataAdapter.SelectCommand = mSqlCommand;
//5. Populate DataSet
mSqlDataAdapter.Fill(myDataSet, "DataSet");
tblMyTable = myDataSet.Tables[0];
}
catch (Exception ex)
{
}
finally
{
//6. Clear objects
if ((mSqlDataAdapter != null))
{
mSqlDataAdapter.Dispose();
}
if ((mSqlCommand != null))
{
mSqlCommand.Dispose();
}
if ((mSqlConnection != null))
{
mSqlConnection.Close();
mSqlConnection.Dispose();
}
}
//7. Return DataSet
return tblMyTable;
}
。My DataTableスニペットが正しく書き込まれていますか?私は、データベースから レコードを返すために上記のコードを使用し
上記のスニペットは、 約5000人の訪問者が毎日訪れると予想されるウェブ アプリケーションで動作します。
返されるレコードは、20,000または に達します。
返されたレコードは、ページングされたGridViewで (読み取り専用)と表示されます。
ではなくのDataTableのDataReaderを使用する方がよいでしょうか?
注:GridViewの2つの列はハイパーリンクされています。
「使用」ポイントは学問的なものです。彼はすでに、finallyブロックにオブジェクトを正しく配置しています。 – Jamiec
@Jamiec:いいえ、 'using'ブロックを使うのは、一般的に受け入れられているベストプラクティスです。それに慣れてください。もうfinallyブロックについて心配する必要はありません。 'ブロック.....) –
ああ私は確かにそれを行う、そのちょうど私はそれがすでにそれらのオブジェクトを処分することを知っていたとして見て強調するために奇妙なものだと思った。 – Jamiec