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

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

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

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 >>
■56462  Re[3]: windowsフォームアプリケーションで
□投稿者/ rdx -(2011/01/14(Fri) 14:01:27)
    > System::Diagnostics::Process クラス

    ありがとうございます。
    さっそく使わせて頂きます。

    PATIOさんの仰るとおり、考え方をかえれば自分で発見できたかもしれません。
    今回は、私の勉強不足であったと思います。
    ありがとうございました!
記事No.56415 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56470  データベース接続用クラスについて
□投稿者/ ぽん -(2011/01/14(Fri) 15:57:25)

    分類:[C#] 

    お世話になっております。

    今回「データベースからデータを取得」「データベースの更新」
    を行うクラスを作成してみたのですが、少し使いにくいので、皆さんにアドバイスを頂きたく質問致しました。

    環境 windows7 visual C# SQLServer2008 Expressになります。

    以下、クエリを送ってDataSetを返すメソッドと、DataSet渡してデータベースを更新するメソッドを持つクラスになっています。

    namespace ×××
    {
    class SQLServerConnection
    {
    readonly static string DataSource = @".\SQLEXPRESS;";
    readonly static string IntegratedSecurity = "True;";
    readonly static string ConnectTimeOut = "30;";

    private string connectionString;

    #region Constructor
    /// <summary>
    /// 接続文字列を作成する。
    /// </summary>
    /// <param name="fileName">mdbファイルのファイル名(フルパス)</param>
    public SQLServerConnection(string fileName)
    {
    this.connectionString =
    @"Data Source = " + DataSource +
    @"AttachDbFilename = " + fileName + ";" +
    @"Integrated Security = " + IntegratedSecurity +
    @"Connect Timeout = " + ConnectTimeOut;
    }
    #endregion

    #region public Method
    /// <summary>
    /// データセットにクエリ結果をセットする。
    /// </summary>
    /// <param name="dataset">空のデータセット</param>
    /// <param name="queryString">クエリ文</param>
    /// <param name="tableName">データテーブル名</param>
    /// <returns>データセット</returns>
    public DataSet SelectRows(string queryString, string tableName)
    {
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = new SqlCommand(queryString, connection);
    DataSet dataset = new DataSet();
    adapter.Fill(dataset, tableName);

    return dataset;
    }
    }

    /// <summary>
    /// クエリ結果を元にデータベースの更新を行う。
    /// </summary>
    /// <param name="dataset">空のデータセット</param>
    /// <param name="queryString">クエリ文</param>
    /// <param name="tableName">データテーブル名</param>
    /// <returns>データセット</returns>
    public void SelectSqlRows(DataSet dataset, string queryString, string tableName)
    {
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = new SqlCommand(queryString, connection);
    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
    adapter.Update(dataset, tableName);
    }
    }
    #endregion
    }
    }

    ただこのクラスですと、DataSetにクエリ結果を取得するまではいいのですが、
    もし既にDataSetにクエリ結果が取得されている場合でも、もう一度同じクエリをデータベース更新用メソッドに
    渡してやらなければならず、あまり汎用性がないため、クラスを上手変更出来ないものかと思い質問しました。
    よろしくお願い致します。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56471  Re[1]: データベース接続用クラスについて
□投稿者/ マサヤ -(2011/01/14(Fri) 16:19:35)
    呼び出し側の処理をみないとなんともいいずらいのですが、SqlConnection はOpenしなくても問題ありませんでしたか?
記事No.56470 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56472  Re[2]: データベース接続用クラスについて
□投稿者/ ぽん -(2011/01/14(Fri) 16:41:15)
    No56471 (マサヤ さん) に返信
    > 呼び出し側の処理をみないとなんともいいずらいのですが、SqlConnection はOpenしなくても問題ありませんでしたか?
    
    マサヤ様お世話になります。
    
    呼び出し側のコードは以下のような感じになっています。
    
    private 何らかのイベント(object sender, EventArgs e)
    {
        SampleConnection scn = new SampleConnection(DBFileName);
        DataSet ds = scn.SelectRows("select * from sample", "sample");
        DataTable dTbl = ds.Tables["sample"];
        
        DataRow dRow = dTbl.NewRow();
        dRow["id"] = 1;
        dRow["name"] = "×××";
    
        dTbl.Rows.Add(dRow);
        scn.SelectSqlRows(ds, "select * from sample", "sample");
    }
    
    取りあえずデータベースに更新はされていますが、openしないと問題がありますでしょうか?
記事No.56470 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56473  Re[3]: データベース接続用クラスについて
□投稿者/ マサヤ -(2011/01/14(Fri) 16:45:16)
記事No.56470 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56475  Re[4]: データベース接続用クラスについて
□投稿者/ ぽん -(2011/01/14(Fri) 17:33:45)
    No56473 (マサヤ さん) に返信
    > SQLServerConnectionがSampleConnectionに代わってる時点で違うクラスを呼び出してる気がします。
    > http://support.microsoft.com/kb/308507/ja
    > ここを読んでみてください。

    すみません。。。
    コード貼り付ける際に間違ってしまいました。。。orz

    正しくはSQLServerConnectionです。申し訳ございません。

    リンク先も今から読んでみます!
記事No.56470 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56431  アルファ付画像の「StretchDIBits」による拡大
□投稿者/ こういち -(2011/01/13(Thu) 18:48:18)

    分類:[C++/CLI] 

    Visual Studio 2010
    WindowsXP SP3

    質問させてください。

    下記手順にて画像の「StretchDIBits(MFC)」による
    拡大処理を行ったところアルファ値が全ピクセル0になってしまいました。
    「StretchDIBits」にてアルファ値の画像を拡大することは可能でしょうか。

    [C++/CLI]側
     アルファ付画像を読み込む(Bitmap/Format32bppArgb)
     「Bitmap」から「BitmapData」を取得し、「BitmapData」の「Scan0」を取り出す。
     「Scan0」をMFC側に渡す。

    [MFC側]
     伸縮モードの変更「SetStretchBltMode(copyDC, HALFTONE)」
     「Scan0」を「StretchDIBits」を使用して拡大
    srcBMP.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    srcBMP.bmiHeader.biBitCount = 32;
    srcBMP.bmiHeader.biPlanes = 1;
    srcBMP.bmiHeader.biWidth = Width;
    srcBMP.bmiHeader.biHeight = Height;

    StretchDIBits(
    copyDC, 0, 0, ZoomWidth, ZoomHeight,
    0, 0, Width, Height,
    srcScan0, &srcBMP, DIB_RGB_COLORS,
    SRCCOPY
    );

     「GetDIBits」を使用して拡大した画像配列を取り出し

    dstBMP.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    dstBMP.bmiHeader.biBitCount = 32;
    dstBMP.bmiHeader.biPlanes = 1;
    dstBMP.bmiHeader.biWidth = ZoomWidth;
    dstBMP.bmiHeader.biHeight = ZoomHeight;

    GetDIBits(
    copyDC, dstHBMP, 0, ZoomHeight,
    dstScan0,
    &dstBMP, DIB_RGB_COLORS);


     「dstScan0」のRGBは設定されていますがアルファ値が
     全ピクセル「0」になってしまいます。

     
    以上、よろしくお願い致します。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56445  Re[1]: アルファ付画像の「StretchDIBits」による拡大
□投稿者/ aetos -(2011/01/14(Fri) 01:58:39)
    No56431 (こういち さん) に返信
    > Visual Studio 2010
    > WindowsXP SP3
    >
    > 質問させてください。
    >
    > 下記手順にて画像の「StretchDIBits(MFC)」による
    > 拡大処理を行ったところアルファ値が全ピクセル0になってしまいました。
    > 「StretchDIBits」にてアルファ値の画像を拡大することは可能でしょうか。

    代わりに AlphaBlend 関数を使ってみてはいかがでしょう。
記事No.56431 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56482  Re[2]: アルファ付画像の「StretchDIBits」による拡大
□投稿者/ こういち -(2011/01/14(Fri) 22:37:09)
    No56445 (aetos さん) に返信
    > ■No56431 (こういち さん) に返信
    >>Visual Studio 2010
    >>WindowsXP SP3
    >>
    >>質問させてください。
    >>
    >>下記手順にて画像の「StretchDIBits(MFC)」による
    >>拡大処理を行ったところアルファ値が全ピクセル0になってしまいました。
    >>「StretchDIBits」にてアルファ値の画像を拡大することは可能でしょうか。
    >
    > 代わりに AlphaBlend 関数を使ってみてはいかがでしょう。

    お返事が遅くなりまして申し訳ありません。
    「AlphaBlend 関数」を使用して、うまくいきました。
    ありがとうございました。
記事No.56431 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56480  直列化
□投稿者/ riku -(2011/01/14(Fri) 21:37:03)

    分類:[C#] 

            private void Form1_FormClosed(Object sender, FormClosedEventArgs e)
    {
    try
    {
    System.IO.FileStream fs = new System.IO.FileStream("data.bin", System.IO.FileMode.Create, FileAccess.Write);
    BinaryFormatter bf = new BinaryFormatter();
    bf.Serialize(fs, members);
    fs.Close();
    }
    catch (Exception exception)
    {
    MessageBox.Show(exception.Message);
    }

    }


    これを実行すると{"アセンブリ 'report, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' の型 'report.Member' はシリアル化可能として設定されていません。"}とでるのですが、何が原因なのでしょうか?
    ご教授おねがします。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56483  Re[1]: 直列化
□投稿者/ よねKEN -(2011/01/14(Fri) 22:37:45)
    No56480 (riku さん) に返信
    > これを実行すると{"アセンブリ 'report, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' の型 'report.Member' はシリアル化可能として設定されていません。"}とでるのですが、何が原因なのでしょうか?

    「シリアル化可能として設定されていません」でWebを検索。
      ↓
    1件目の検索結果を見る。
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5179&forum=7

    ここにある状況には該当しませんか?
    それでも解決できないようなら、肝心のreport.Member型とやらを定義しているコードを提示しましょう。
記事No.56480 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56481  Re[1]: 直列化
□投稿者/ Azulean -(2011/01/14(Fri) 22:36:41)
    シリアル化、あるいはシリアライズ(Serialize)であり、直訳してはいけません。

    No56480 (riku さん) に返信
    > これを実行すると{"アセンブリ 'report, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' の型 'report.Member' はシリアル化可能として設定されていません。"}とでるのですが、何が原因なのでしょうか?

    その例外の通り、シリアル化可能として、Member 型を作っていないことが原因です。
    とりあえずは、このあたりから読んでみてはいかがでしょうか。
    http://msdn.microsoft.com/ja-jp/library/4abbf6k0.aspx

    なお、型によってはこんなに単純には済まない可能性があります。
    それはあなたが作っている型次第ですので、第三者にはわかりません。
記事No.56480 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56487  Re[2]: 直列化
□投稿者/ riku -(2011/01/15(Sat) 01:06:09)
    Memberは作っていたのですが、[Serializable]の記述をしてなく動かなかったみたいです。
    ありがとうございました。
記事No.56480 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56488  STLのiterator
□投稿者/ きょん -(2011/01/15(Sat) 01:18:33)

    分類:[C/C++] 

    VC++7.1以降のSTLのiteratorに関しての質問です。

    std::vectorやstd::mapなどのcontainerを使用する際の
    containerのelementのeraseのときは(std::vectorに限りませんが)、たとえば
    vector<T>::iterator i = container.begin();
    while ( i != container.end() ) {
    if ( 要素を削除したいなら ) {
    i = container.erase( i );
    }
    }
    とイディオムのように、呪文のようにずっとコードを書いてきました(勉強不足は承知しています)。
    しかしstd::vectorの場合、codeを見ていて、i = container,erase( i )は必要がないと理解しました。
    std::mapやstd::listは彼のcodeが必要なのも想像できますし、traceしていて確信も得たと思っています。
    あくまでVC++7.1以降の話ですが…。

    そこで質問なのですが、上記のcodeのi = container.erase( i )は
    すべてのSTLのcontainerに通用するものなのでしょうか?
    それとも
    if ( 要素を削除したいなら ) {
    container.erase( i );
    ++i;
    }
    と書くのがSTLを扱う上でbetterなのでしょうか?

親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56489  Re[1]: STLのiterator
□投稿者/ επιστημη -(2011/01/15(Sat) 03:07:11)
>
    条件を満たすものをコンテナから削除するなら、僕はこうする:
    
    #include <iostream>
    #include <algorithm>
    #include <numeric>
    #include <vector>
    
    using namespace std;
    
    int main() {
      vector<int> iv(10);
      iota(iv.begin(), iv.end(), 0); // iv = { 0, 1, 2 ... 9 }
    
      // 使用前
      for_each(iv.begin(), iv.end(), [](int n) { cout << n << ' ';});
      cout << endl;
    
      // 偶数を削除
      iv.erase(remove_if(iv.begin(),iv.end(),[](int n) { return n % 2 == 0;}), iv.end());
    
      // 使用後
      for_each(iv.begin(), iv.end(), [](int n) { cout << n << ' ';});
      cout << endl;
    }
    
    ...てか、こんな話じゃないのかしら?
    
記事No.56488 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56492  Re[2]: STLのiterator
□投稿者/ きょん -(2011/01/15(Sat) 10:57:05)
    No56489 (επιστημη さん) に返信
    
    あー…。
    そうですね。containerを操作する適切なメソッドを使えば
    containerの枝葉の違いを吸収してくれますね。
    基本的なことに目を向けていませんでした…。
    
    目が覚めました。
    ありがとうございました。
    
記事No.56488 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

<前の20件

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 >>

ヒット件数が多いので過去ログ1〜94 までの検索結果 / 過去ログ95からさらに検索→

パスワード/

- Child Tree -