2013年8月18日日曜日

DataGridViewのスクロールバーがおかしくなる

VS2010で自分用のプログラムを書いててDataGridViewの動きがおかしい。

            this.dataGridView1.Rows.Clear();
            DataTable xx;
            xx= データ取得;
            foreach (DataRow viewdr in xx.Rows)
            {
                this.dataGridView1.Rows.Add(viewdr.ItemArray);
            }
とやってるのだがスクロールバーで全部のデータが見られない。
ヘッダーカラムをクリックしてソートしたり、カーソルキーなどで移動すると全部できる。

DataGridViewのスクロールバーエラーとかで、いろいろ検索してみると。
.VirtualMode = True
.VirtualMode = False

とするといいとかある。
.ScrollBars = ScrollBars.None;
.ScrollBars = ScrollBars.Both;
で、治ったとか。
なんか、おまじないくさくてやだ。
リフレッシュそたらなおるのかな?と思って
            this.dataGridView1.Refresh();
としてみるが、ダメ。
おまじないにしないとだめかなと思ったところでちょっと思いつく。
            this.dataGridView1.SuspendLayout();
            this.dataGridView1.Rows.Clear();
            DataTable xx;
            xx= データ取得;
            foreach (DataRow viewdr in xx.Rows)
            {
                this.dataGridView1.Rows.Add(viewdr.ItemArray);
            }
            this.dataGridView1.ResumeLayout();
で解決。描画を止めて、セットしてから描画するという手段で回避しました。
きっと、この動作自体はバグなんでしょうね
これも、おまじないだが自分の気分的にはこちらのほうがいい。

2013年8月16日金曜日

MDBのカラム名とコメント取得

MDBのカラム名とコメント取得
 
DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });

foreach (DataRow dr in schemaTable.Rows)
{
    DataTable table = conn.GetSchema("Columns", new string[4] { null, null, dr["TABLE_NAME"].ToString(), null });

    DataRow[] table2 = table.Select("", "ORDINAL_POSITION");
    foreach (DataRow dr2 in table2)
    {
        List<string> col = new List<string>();
        col.Add("\"" + dr2["TABLE_NAME"].ToString() + "\"");
        col.Add("\"" + dr2["COLUMN_NAME"].ToString() + "\"");
        col.Add("\"" + dr2["DESCRIPTION"].ToString() + "\"");
    }

}

メモ書きとして。

2013年8月1日木曜日

MySQLのCHARSET

文字化けするのでPDOでSET NAMEみたいなのって調べたら
SET NAMEは脆弱性の元とかいってダメとか。

 $con = new PDO(
     "mysql:host=".consClass::dbserver."; dbname=".consClass::dbname,
     consClass::dbuser,  consClass::dbpass,
     array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8")
 );

接続時にこれでOKでした。

2013年7月31日水曜日

AMAZONのAPI(AWS)でkindleを除外する条件

パラメータに
Power=binding:not kindle
追加するだけ。

すげー簡単に終わった。

パラメータでKindle除外できるやん。

2013年7月18日木曜日

MYSQL クエリーログ

my.iniのConfigに追記。 デバッグ用と思って本番ではコメントにしないと危険(おもに、容量的に)
[mysqld]
log=myquery.log

2013年7月17日水曜日

VBA ファイル作成してデータ出力

VBAが嫌いで避けてたのですがファイル作成してデータ出力が
必要になったのでメモ。

    Dim fn As String
    Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
    Dim fs As Object

    fn = Format(Now, "mmddhhnn") & ".sql"

    Set fs = FSO.OpenTextFile(fn, 2, True, -2)
    sheetCNT = Sheets.Count

    For i = 2 To sheetCNT
       fs.writeline (Sheets(i).Name)
    Next

    fs.Close

2013年7月10日水曜日

MySql

MySQL Connector/Netが入ってなかった 下のリンクから取得。(リンクのファイル名は私が取得した時のバージョン) mysql-connector-net-6.7.4-noinstall.zip 取得するのにOracleのアカウントが必要。 特にお金がかかるわけではないのでさくっと登録。 「.NET & MONO」を選択してダウンロード。 解凍すると。V2とV4のフォルダができます。 .Net4はV4のフォルダの「mysql.data.dll」を参照して追加します。 これで使えるようになるはず。