私は3層アプリケーションを作成しました..データベースに接続し、それに応じてレコードを更新する更新メソッドを呼び出したいです。
以下は私のデータベースアクセスレイヤーです。
public class DataLogic
{
public DataLogic()
{
}
public SqlConnection ConnectDatabase
{
get { return new SqlConnection(ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString); }
}
public int UpdateArticle(BusinessLogic b, int ArticleId)
{
int updateExecuted = -1;
StringBuilder formParamString = new StringBuilder();
formParamString.Append("IsArticlePaging=" + b.IsPagingEnable + " ");
string updateString = "update crossarticle_article set " + formParamString.ToString() + "where id = " + ArticleId + "";
try
{
using (SqlCommand comUpdateArticle = new SqlCommand(updateString, ConnectDatabase))
{
ConnectDatabase.Open();
updateExecuted = comUpdateArticle.ExecuteNonQuery();
}
}
catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); }
finally { ConnectDatabase.Close(); }
return updateExecuted;
}
}
以下は私のビジネスロジックレイヤーです
public class BusinessLogic
{
DataLogic dLogic = new DataLogic();
public BusinessLogic()
{
}
private bool _IsPagingEnable;
public bool IsPagingEnable
{
get { return _IsPagingEnable; }
set { _IsPagingEnable = value; }
}
private int _articleID;
public int ArticleID
{
get { return _articleID; }
set { _articleID = value; }
}
public int UpdateExtraFieldArticle()
{
return dLogic.UpdateArticle(this, ArticleID);
}
}
BusinessLogic オブジェクトを作成して update メソッドを呼び出すと、期待どおりに DataLogic の update メソッドが呼び出されますが、データベースを更新する前に、ExecuteNonQuery にはオープンで利用可能な接続が必要であるというエラーがスローされます。しかし、私はすでに接続を開いています。
sqlconnectionに関して誰か助けてください。