0

クラスの操作に慣れている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;
     }
4

0 に答える 0