public void LotteryRegistration(InviteHistoryEntity inviteEntity) { // 申し込みビジネスロジック用のDao(DataAccessObject)のインスタンス applicationDao を生成 ApplicationDao applicationDao = new ApplicationDao(); // applicationDao のアンケート結果をデータベースに登録する処理 ApplicationInsertExecute へ resultEntity を渡し実行 applicationDao.ApplicationInsertExecute(inviteEntity); }
public void Changecoin(InviteHistoryEntity inviteEntity, int inviteusercoin) { // ログインビジネスロジック用のDao(DataAccessObject)のインスタンス LoginDao を生成 ApplicationDao ApplicationDao = new ApplicationDao(); // inviteEntityの値を元にコインの変更を行う ApplicationDao.ChangeCoin(inviteEntity, inviteusercoin); }
public DataTable LotterySelect(InviteHistoryEntity inviteEntity) { // ログインビジネスロジック用のDao(DataAccessObject)のインスタンス LoginDao を生成 ApplicationDao ApplicationDao = new ApplicationDao(); // LoginDao のログイン内容をデータベースに登録する処理 LoginInsertExecute へ loginEntity を渡し実行 return(ApplicationDao.GetLotteryHistory(inviteEntity)); }
public DataTable GetLotteryHistory(InviteHistoryEntity inviteEntity) { var table = new DataTable(); // データベースから抜出処理 using (SqlConnection connection = new SqlConnection()) // データベースへ接続すためのインスタンスconnectionを生成 { // データベースへ接続するためのプロパティを設定。 connection.ConnectionString = connectionString; // データベースへの接続を開始。以降データベースへの操作が可能となる。 connection.Open(); using (SqlCommand command = new SqlCommand()) // データベースへ処理の指示をだすインスタンスcommandを作成 { // commandが操作をする先の接続を設定 command.Connection = connection; // 実際にデータベースに実行するSql文を設定 command.CommandText = LotterySelectsSql; // 入力項目毎にSqlに渡すパラメータのインスタンスを作成 SqlParameter id = new SqlParameter("id", SqlDbType.Int); //nameをデータベース上の定義をvarchar型として // 作成したパラメータに回答してもらった内容(引数:resultEntityの内容)を格納 id.Value = inviteEntity.invitedUser; // 作成したパラメータのインスタンスを実際にcommandに追加 // これでSqlファイルの@~が変数が渡したパラメータに置き換えられる command.Parameters.Add(id); using (SqlTransaction transaction = connection.BeginTransaction()) // connectionよりトランザクション(データベースのセーブポイント)を作成 { command.Transaction = transaction; //commandに用意した処理を実行 try { //とりあえずデータベースに処理を流してみて //command.ExecuteNonQuery(); //成功したら保存 //transaction.Commit(); var adapter = new SqlDataAdapter(command); adapter.Fill(table); } catch (Exception e) { //失敗したらトランザクションを作ったところまで戻す if (transaction != null) { transaction.Rollback(); } //発生したException(エラー)を呼び出し元に返す throw; } } } } return(table); }
// データベースへの接続プロパティを用意 // Data Source :サーバ名やIP // Catalog :データベース名 // User Id :データベース接続ユーザID // Password :ユーザのログインパスワード //private const string connectionString = @"Data Source=192.168.183.128;Initial Catalog=SAMPLE;Persist Security Info=True;User Id=sa;Password=Welbox123"; // データベースへ申し込み内容を保存するメソッド public void ApplicationInsertExecute(InviteHistoryEntity inviteEntity) { // データベースへの登録処理 using (SqlConnection connection = new SqlConnection()) // データベースへ接続すためのインスタンスconnectionを生成 { // データベースへ接続するためのプロパティを設定。 connection.ConnectionString = connectionString; // データベースへの接続を開始。以降データベースへの操作が可能となる。 connection.Open(); using (SqlCommand command = new SqlCommand()) // データベースへ処理の指示をだすインスタンスcommandを作成 { // commandが操作をする先の接続を設定 command.Connection = connection; // 実際にデータベースに実行するSql文を設定 command.CommandText = ApplicationInsertSql; // 入力項目毎にSqlに渡すパラメータのインスタンスを作成 SqlParameter inputuserid = new SqlParameter("inputUserId", SqlDbType.Int); //dateをデータベース上の定義をvarchar型として SqlParameter loginuserid = new SqlParameter("loginUserId", SqlDbType.Int); //nameをデータベース上の定義をvarchar型として SqlParameter coin = new SqlParameter("coin", SqlDbType.Int); //nameをデータベース上の定義をvarchar型として // 作成したパラメータに回答してもらった内容(引数:resultEntityの内容)を格納 inputuserid.Value = inviteEntity.inviteUser; loginuserid.Value = inviteEntity.invitedUser; coin.Value = inviteEntity.coin; // 作成したパラメータのインスタンスを実際にcommandに追加 // これでSqlファイルの@~が変数が渡したパラメータに置き換えられる command.Parameters.Add(inputuserid); command.Parameters.Add(loginuserid); command.Parameters.Add(coin); using (SqlTransaction transaction = connection.BeginTransaction()) // connectionよりトランザクション(データベースのセーブポイント)を作成 { command.Transaction = transaction; //commandに用意した処理を実行 try { //とりあえずデータベースに処理を流してみて command.ExecuteNonQuery(); //成功したら保存 transaction.Commit(); }catch (Exception e) { //失敗したらトランザクションを作ったところまで戻す if (transaction != null) { transaction.Rollback(); } //発生したException(エラー)を呼び出し元に返す throw; } } } } }
protected void Button_Click2(object sender, EventArgs e) { InviteHistoryEntity inviteEntity = new InviteHistoryEntity(); var a = (string)Session["id"]; ApplicationBusiness applicationBusiness = new ApplicationBusiness(); // applicationBusinessの申し込み結果の登録ロジック ApplicationRegistration に resultEntity を渡し実行 inviteEntity.invitedUser = int.Parse(a); //自分のID獲得 var mytable = applicationBusiness.Selecte(inviteEntity); if (mytable.Rows.Count == 4) //自分が4人招待した { var lottable = applicationBusiness.LotterySelect(inviteEntity); if (lottable.Rows.Count == 0) { Response.Redirect("./ResultPage.aspx"); } else { Response.Redirect("./Ivent_error.aspx"); } } }
// 「送信」ボタンを押下した時の処理 protected void Button_Click(object sender, EventArgs e) { error1.Visible = false; // 申込内容を保持するオブジェクトのインスタンスを生成 ApplicationEntity resultEntity = new ApplicationEntity(); InviteHistoryEntity inviteEntity = new InviteHistoryEntity(); int inviteid = 0; int inviteusercoin = 0; var a = (string)Session["id"]; // 申込内容をresultEntityのメンバに格納 if (!TextBox1.Text.Trim().Equals("")) { inviteid = int.Parse(TextBox1.Text); } // エラーメッセージが表示されていない = 入力欄に不備が無い if (!error1.Visible) { // 申し込み画面のBusinessLogic(計算・加工処理・実施)のインスタンス applicationBusiness を生成 ApplicationBusiness applicationBusiness = new ApplicationBusiness(); // applicationBusinessの申し込み結果の登録ロジック ApplicationRegistration に resultEntity を渡し実行 var table = applicationBusiness.Selects(inviteid); inviteEntity.invitedUser = int.Parse(a); //自分のID獲得 var mytable = applicationBusiness.Selected(inviteEntity); //自分が招待されたことがあるか確認 if (mytable.Rows.Count == 0) //自分が招待されたことが無い { // 入力されたユーザID if (table.Rows.Count != 0) { //入力した人が存在している { inviteEntity.inviteUser = (int)table.Rows[0][0]; inviteusercoin = (int)table.Rows[0][3]; // 入力したユーザID var inviteHistoryTable = applicationBusiness.InvitehistorySelect(inviteEntity.inviteUser); //入力した相手が4人以上招待していない && 入力した相手が自分ではない if (inviteHistoryTable.Rows.Count < 4 && inviteEntity.inviteUser != inviteEntity.invitedUser) { inviteEntity.coin = (inviteHistoryTable.Rows.Count + 1) * 100; inviteusercoin += inviteEntity.coin; applicationBusiness.ApplicationRegistration(inviteEntity); applicationBusiness.Changecoin(inviteEntity, inviteusercoin); // 完了画面ページへ遷移する Response.Redirect("./Ivented_user.aspx"); } } } Response.Redirect("./error_user.aspx"); } else //招待されたことがある { // エラーメッセージを表示する error1.Visible = true; } } }