クラスの操作に慣れているSqlHelper
ので、既存のコードを変更して利用したいと考えています。
既存のコード
public string GetData()
{
string message = string.Empty;
string conStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection connection = new SqlConnection(conStr))
{
string query = "usp_getdata";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Notification = null;
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
message = reader[0].ToString();
}
}
}
return message;
}
私にできるのはこれくらいです。どうすればこれを改善できますか。基本的な考え方は、コード行を最小限に抑え、SqlHelper を利用し、さらに datareader の代わりにデータセットを使用することです。
public string GetData()
{
string message = string.Empty;
string conStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
SqlConnection connection = new SqlConnection(conStr);
SqlCommand cmd = (SqlCommand)SqlHelper.CreateCommand(connection, "usp_getdata");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Notification = null;
SqlDependency dependency = new SqlDependency(cmd);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
message = ds.Tables[0].Rows[0]["Message"].ToString();
return message;
}