C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.4858 の関連記事表示

<< 0 >>
■4858  Re[1]: コントロールが張り付いているコントロールを取得するには
□投稿者/ まどか -(2006/07/08(Sat) 00:20:09)

    分類:[VB.NET] 

    > ラジオボタンのように パネルやグループボックスの中に複数入れておくと 一つしかtrueにできないボタンにしたいのです

    「一つしかtrueにできない」をどこへ実装するつもりですか?
    #これがポイントだったりします。

    >  そこで そのボタンが張り付いているパネルやグループボックスを取得する方法が分かれば できると思うのですが フォーム自体は .Parent で取得できるのですが張り付いているコントロール自体を取得する方法がわかりません

    パネルやグループの中であればコンテナの子コントロールなのでControlsコレクションを参照することになります。

    どんな実装をするのかわかりませんが、Parentはフォームとは限りません。
    パネルの中にパネルがあったりと、あくまで自分のコンテナのことです。
    フォームを知りたいのであればFindFormメソッドを使うことになります。
記事No.4854 のレス /0過去ログ4より / 関連記事表示
削除チェック/

■4858  C# & SQLite /transactionするには?
□投稿者/ kaburk -(2007/06/27(Wed) 19:07:46)

    分類:[C# (Windows)] 

    Visual C# 2005 Express Edition にて ADO.NET 2.0 Provider for SQLite(http://sqlite.phxsoftware.com/)を利用しています。

    TableAdapterにてINSERTやupdateするとどうも更新が遅いので、Googleで調べたら

    > http://journal.mycom.co.jp/special/2004/php5/007.html
    > SQLiteでは明示的にトランザクションを開始しない限り、INSERT処理の前後に必ず"BEGIN"、"COMMIT"が実行される。

    とのことでした。

    C#でこれを回避したいのですが、どんな感じのやり方でコーディングしたらいいんでしょうか??

    トランザクション管理に System.Transactions というのがあるようで、試しに
    http://www.microsoft.com/japan/msdn/thisweek/300x10/phase3/Transaction_Scope/cs.aspx
    を参考に適用してみました。
    が、トランザクションは発行されているみたいですが、いざDataSetからGetData等すると「'System.Data.SQLite.SQLiteException' の初回例外が System.Data.SQLite.dll で発生しました。」「The database file is locked」「database is locked」となってしまい、どうしたもんだか、という感じです。

    アドバイスいただけたら幸いです。
親記事 /過去ログ14より / 関連記事表示
削除チェック/

■4899  Re[1]: C# & SQLite /transactionするには?
□投稿者/ はつね -(2007/06/28(Thu) 10:46:04)
>
    No4858 (kaburk さん) に返信
    >>http://journal.mycom.co.jp/special/2004/php5/007.html
    >>SQLiteでは明示的にトランザクションを開始しない限り、INSERT処理の前後に必ず"BEGIN"、"COMMIT"が実行される。
    > とのことでした。
    > C#でこれを回避したいのですが、どんな感じのやり方でコーディングしたらいいんでしょうか??

    ADO.NET 2.0 Provider for SQLiteにはTransactionないの?


    > トランザクション管理に System.Transactions というのがあるようで、試しに

    これはMS-DTCを使ったものですから、SQLiteが対応していないとダメですね。対応しているの?
記事No.4858 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4956  Re[2]: C# & SQLite /transactio
□投稿者/ kaburk -(2007/06/29(Fri) 13:42:27)
    2007/06/29(Fri) 13:48:27 編集(投稿者)

    No4899 (はつね さん) に返信

    返信ありがとうございます。

    > ADO.NET 2.0 Provider for SQLiteにはTransactionないの?

    Transactionはあるので、TableAdapterから利用したいという訳です。

    色々調べて
    http://www.ailight.jp/blog/unaap/archive/2007/02/13/13566.aspx
    という記述を見つけたので、C#&SQLiteへ変換して試してみました。

    変換したソースはこちらです。
    http://www5.uploader.jp/dl/kaburk/kaburk_uljp00002.zip.html

    しかし、動きそうでどうにも動かない。

    > private SQLiteDataAdapter GetAdapter(object tableAdapter)
    > {
    > Type type = tableAdapter.GetType();
    > PropertyInfo adapterProperty = type.GetProperty("_adapter", BindingFlags.NonPublic | BindingFlags.Instance);
    > SQLiteDataAdapter adapter = (SQLiteDataAdapter)adapterProperty.GetValue(tableAdapter, null);
    > return adapter;
    > }

    上記の関数にて _adapter が取得できないようです。
    「オブジェクト参照がオブジェクトインスタンスに設定されていません。」となりnullになってしまって。何故だろう。
    GetProperty出来ない理由を何方かご存知ありませんでしょうか?

    とりあえず_adapter を Adapter とすると取得できるのですが

    > private void SetAdapter(object tableAdapter, SQLiteDataAdapter adapter)
    > {
    > Type type = tableAdapter.GetType();
    > PropertyInfo adapterProperty = type.GetProperty("Adapter", BindingFlags.NonPublic | BindingFlags.Instance);
    > adapterProperty.SetValue(tableAdapter, adapter, null);
    > }

    にて、「Property Setメソッドが見つかりません。」エラーです。読取専用なんですかね。

    >>トランザクション管理に System.Transactions というのがあるようで、試しに
    > これはMS-DTCを使ったものですから、SQLiteが対応していないとダメですね。対応しているの?

    対応しているかどうかは不明ですが、 MS-DTCは使わない方向で考えていこうと思います。

    ということでまだ解決に至ってないんですが、少し先が見えてきました。
    引き続き何方かご教授お願いします。
記事No.4858 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4959  Re[3]: C# & SQLite /transactio
□投稿者/ kaburk -(2007/06/29(Fri) 14:09:55)
    2007/06/29(Fri) 14:10:04 編集(投稿者)

    No4956 (kaburk さん) に返信

    自己解決しました。
    どうやらPropertyではなくFieldのようでした。
    お騒がせしました。

    > private void SetAdapter(object tableAdapter, SQLiteDataAdapter adapter)
    > {
    > Type type = tableAdapter.GetType();
    > FieldInfo adapterField = type.GetField("_adapter", BindingFlags.NonPublic | BindingFlags.Instance);
    > adapterField.SetValue(tableAdapter, adapter);
    > //PropertyInfo adapterProperty = type.GetProperty("Adapter", BindingFlags.NonPublic | BindingFlags.Instance);
    > //adapterProperty.SetValue(tableAdapter, adapter, null);
    > }
    >
    > private SQLiteDataAdapter GetAdapter(object tableAdapter)
    > {
    > Type type = tableAdapter.GetType();
    > FieldInfo adapterField = type.GetField("_adapter", BindingFlags.NonPublic | BindingFlags.Instance);
    > SQLiteDataAdapter adapter = (SQLiteDataAdapter)adapterField.GetValue(tableAdapter);
    > //PropertyInfo adapterProperty = type.GetProperty("Adapter", BindingFlags.NonPublic | BindingFlags.Instance);
    > //SQLiteDataAdapter adapter = (SQLiteDataAdapter)adapterProperty.GetValue(tableAdapter, null);
    > return adapter;
    > }
記事No.4858 のレス / END /過去ログ14より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -