2012年08月15日

複数キーでjoin


引き続きLinq to SQLで躓き中。
string.Formatが効かなかったっていう現象もあったのですが、それはほっとくことにしました。もうシラネ!
SQLならできるのに…to_Charとかでさ。123456→\123,456ってしたかったんだよ。
何かどうも無理っぽいから…ていうか解決方法見つからなかった。

まあそれは置いといてですね。
今回は
join句のいずれかの式の型が正しくありません。'GroupJoin'の呼び出しで型を推論できませんでした。
というエラーでうんうん唸ってました。
http://blogs.wankuma.com/shuujin/archive/2008/08/31/154819.aspx
の通りにしてるのにできないってどういうことじゃああうおおおお!!
と、ロックンロールを踊りかけていたところ、
http://piyopiyocs.blog115.fc2.com/blog-entry-72.html
こちらのサイトで解決しました。

まったく同じことで躓いておられたようで大助かり!
支援支援です!どうぞ!
posted by 尻尾泥棒 at 16:48| Comment(0) | Linq | このブログの読者になる | 更新情報をチェックする

2012年02月11日

複数削除

データグリッドに表示されたデータを複数選択して削除する処理のメモです。
private void OnDeleteButtonClick()
{
 List target = getCheckedNos();
 if (target.Count() < 0)
 {
  this.ShowNotSelectedDeleteLineMessage();  // エラーメッセージ
  return;
 }

 if (this.ShowDeleteConfirmMessage() == System.Windows.Forms.DialogResult.OK)
 {
  try
  {
   // 砂時計に変更
   Cursor.Current = Cursors.WaitCursor;
   int currentRowIndex = dataGridViewList.CurrentRow.Index;
   using (var context = new HyoteiSystemContext())
   {
    var q = from m_hyoutei m in context.m_hyoutei
         where target.Contains(m.student_id)
         select m;
    if (q.Count() <= 0)
    {
     this.ShowErrorMessage("選択されたデータが存在しない為、削除出来ませんでした。");
     return;
    }
    else
    {
     foreach (var row in q)
     {
      context.m_hyoutei.DeleteObject(row);
     }
     context.SaveChanges();
    }
   }

   // 削除後に検索と表示を再びしてる(あんま関係ないし意味ないけどついでに置いとく)
   this.OnSearchButtonClick();
   this.dataGridViewList.ReselectDataGridViewRow(currentRowIndex);
  }
  catch (Exception)
  {
   this.ShowErrorMessage("削除に失敗しました。");
   return;
  }
 }
}


private List getCheckedNos()
{
 List nos = new List();
 foreach (DataGridViewRow row in this.dataGridViewList.Rows)
 {
  // "select"ってのがチェックボックスカラム
  // チェックされていないとValueはnullになっちゃうので二段階層
  // "&"一個でできると思ったんだけどなあ…。
  if (null != row.Cells["select"].Value)
  {
   if (int.Parse(row.Cells["select"].Value.ToString()) == 1)
   {
    // 選択された生徒IDをじゃんじゃか追加
    nos.Add((int)row.Cells["student_id"].Value);
   }
  }
 }
 return nos;
}

初めてSyntaxHighlighterを使ってみたけど、あんまり上手くいってないなあ。
インデントがきつい…w
最初VisualStudioからコピペしたら、えらい空白空いてたんで、全角スペースでがんばった。
けど、見づらいね。
全角スペース2個分が良いかも。今日はもう疲れたのでこれでいく。

それにしても見辛い。
テンプレの所為かな。もっと全画面使えるテンプレがほしいんだけど…。
また探しておきます。

ソースコードの最後にintが四つ並べてあるんだけど、これは勝手に入ってるものです。謎。何これ。


タグ:C# Visual Studio
posted by 尻尾泥棒 at 18:18| Comment(0) | Linq | このブログの読者になる | 更新情報をチェックする
司法書士事務所

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。