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 >>
■56377  Re[1]: コントロールの取得順番
□投稿者/ shu -(2011/01/12(Wed) 12:28:23)
    No56371 (ぽん さん) に返信

    (1)反復利用することがなければ4つ程度ならそのまま書いてしまう。
    (2)Dictionary<String, ComboBox>を使って項目名とComboBoxを対応付けてしまう。
    (3)ComboBoxのTagがあいていれば、Tagに項目名を入れておく。
    などもどうでしょう?
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56378  Re[2]: コントロールの取得順番
□投稿者/ マサヤ -(2011/01/12(Wed) 12:33:46)
    もしかして
    >4つのコンボボックスはそれぞれDBから名前をバインドしております。
    ここでSQLをorder byとかしたらOKとかはないですよね?
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56381  Re[3]: コントロールの取得順番
□投稿者/ todo -(2011/01/12(Wed) 12:44:43)
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56382  Re[4]: コントロールの取得順番
□投稿者/ ぽん -(2011/01/12(Wed) 13:07:36)
    皆さまこんなにも返信ありがとうございます<(_ _)>
    返信が追い付かず、申し訳ありませんが皆さまにまとめて返信する形になってしまいました。

    取りあえずzオーダーを変更して順番に取得出来ました。
    todo様ありがとうございます。

    またマサヤ様、魔界の仮面弁士様、shu様。
    アドバイス頂きありがとうございました。

    皆さまの方法でも確認したいと思います。

    また質問した際にはよろしくお願い致します。






記事No.56371 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56394  DataGridViewのボタンエンター時の処理について
□投稿者/ nagaポン -(2011/01/12(Wed) 17:01:16)

    分類:[.NET 全般] 

    DataGridView内にボタンをつくりフォーカスがあるときにエンターキーを押した場合(KeyDown)
    次の行へ行かずにマウスクリック時(SellClick)と同じ処理を行いたいのですが良い方法はないでしょうか
    SellClick時には
    If DataGridView.Columns(e.ColumnIndex).Name = "Button1" Then
    を使っているのですがKeyDown時にも似たようなものはないでしょうか
    お願いします
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56398  Re[1]: DataGridViewのボタンエンター時の処理について
□投稿者/ bagabond -(2011/01/12(Wed) 22:06:26)
    No56394 (nagaポン さん) に返信
    DatagridViewのKeyDownイベントプロシージャで、カレントセルがボタンの場合は、CellClickイベントプロシージャをコールして、KeyDown処理を「処理済み」にすれば良いのでは?


    Private Sub DataGridView1_KeyDown(Byval sender As Object, Byval e As System.Windows.Forms.KeyEventArgs)
    Dim oDGV As DataGridView = DirectCast(sender, DataGridView)
    '
    '途中省略:カレントのセルがボタンの場合
    '
    DataGridView1_CellClick(sender, New System.Windows.Forms.DataGridViewCellEventArgs(oDGV.CurrentCell.ColumnIndex, oDGV.CurrentCell.RowIndex)

    e.Handeled = True  <- KeyDown処理を「処理済み」にする

    End Sub
記事No.56394 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56396  Re[1]: DataGridViewのボタンエンター時の処理について
□投稿者/ じゃんぬねっと -(2011/01/12(Wed) 22:02:31)
    No56394 (nagaポン さん) に返信
    > DataGridView内にボタンをつくりフォーカスがあるときにエンターキーを押した場合(KeyDown)
    > 次の行へ行かずにマウスクリック時(SellClick)と同じ処理を行いたいのですが良い方法はないでしょうか

    "KeyDown イベントより前に規定の動作が作動するから" という原因がわかると、回避方法は見えてきそうです。
    手っ取り早い方法は Process~ をオーバーライドする方法ですが、他にも方法があったような気が... 忘れました。(^^;

    > SellClick時には
    > If DataGridView.Columns(e.ColumnIndex).Name = "Button1" Then
    > を使っているのですがKeyDown時にも似たようなものはないでしょうか
    > お願いします

    SellClick とは CellClick のことで良いですよね。
    そのコードで何をやろうとしているのか、少し悩みます。
    「ButtonCell かどうかを確かめたい」のであれば、TypeOf を使うでしょうし、特定のセルであることを確認するならインスタンスで比較するでしょうし、何でしょう?
記事No.56394 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56366  DataAdapterを使用した場合のTransaction
□投稿者/ bagabond -(2011/01/12(Wed) 00:21:03)

    分類:[VB.NET/VB2005 以降] 

    VB2008とSQL Server2008の環境でSqlDataAdapterを使用してデータの更新を行っていますが、Transactionでエラーになります。
    以下の例でTransactionのBeginTransactionをoAdapter.InsertCommand = ・・・の後にもってくれば、エラーは無くなりますが、複数のテーブルをひとつのTransactionで処理できなくなります。どなたかご教授をお願いします。

    Using connection As New SqlClient.SqlConnection(接続文字列)

        Dim oTrans As SqlClient.SqlTransaction = connection.BeginTransaction  <- この処理をしなけらばエラーは起こらない

        Dim oAdapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQL文,connection)
    Dim oBuilder As SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(oAdapter)

    oAdapter.InserCommand = oBuilder.GetInserCommand() <- エラー「コマンドのTransactionプロパティが初期化されていない」
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56367  Re[1]: DataAdapterを使用した場合のTransaction
□投稿者/ shu -(2011/01/12(Wed) 07:41:17)
    2011/01/12(Wed) 08:19:06 編集(投稿者)
    2011/01/12(Wed) 08:18:18 編集(投稿者)

    No56366 (bagabond さん) に返信

    > oAdapter.InserCommand = oBuilder.GetInserCommand() <- エラー「コマンドのTransactionプロパテ

    この後に
    oAdapter.InsertCommand.Transaction = oTrans
    が必要です。
記事No.56366 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56399  Re[2]: DataAdapterを使用した場合のTransaction
□投稿者/ bagabond -(2011/01/12(Wed) 23:14:51)
    No56367 (shu さん) に返信
    shuさん、ご返事ありがとうございます。
    ご指摘の方法ではありませんが、マイクロソフトのオンラインサポートの記事を参考にして、プログラミングしたら、正常に動作しました。
    http://support.microsoft.com/kb/310351/ja
    データセットに追加、変更、削除の処理がされている場合は、コマンドビルダーでデータアダプターにInsertCommand,UpdateCommand,DeleteCommandを設定する必要は無いようです。


    'データセットに追加、変更、削除が加えられている。
    Using connection As New SqlClient.SqlConnection(接続文字列)
    Dim oTrans As SqlClient.SqlTransaction = connection.BeginTransaction
    Dim oAdapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQL文,connection)
    Dim oBuilder As SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(oAdapter)

    oAdapter.SelectCommand.Transaction = oTrans
    oAdapter.Update(データセット、テーブル)
    oTrans.Commit()



記事No.56366 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56400  Re[3]: DataAdapterを使用した場合のTransaction
□投稿者/ なちゃ -(2011/01/12(Wed) 23:20:03)
    SQL Server 2008 と .NET Framework 2.0 SP1 以降であれば、
    System.Transactions.TransactionScope
    を使う方法をおすすめします。
記事No.56366 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56373  C#でSQLiteを接続
□投稿者/ える -(2011/01/12(Wed) 10:56:38)

    分類:[C#] 

    2011/01/12(Wed) 11:04:07 編集(投稿者)


    すみません。ミスしました。

    Windows XP
    Visual Studio 2008
    C#で開発しています。

    C#でSQLiteを接続し、
    DBから読み出したいと思っています。

    以下コーディング
    private void DB_Sqlite(string no)
    {
    /*データベースに接続*/
    SQLiteConnection connect = new SQLiteConnection("Data Source=Test.db");
    if ((connect == null))
    {
    MessageBox.Show("データベースの接続に失敗しました。");
    return;
    }
    // データベース接続を開く
    connect.Open();
    try
    {
    string mySelectQuery = "SELECT * FROM Testtable where No '" + no + "'";
    SQLiteCommand command = new SQLiteCommand(mySelectQuery, connect);

    if ((command = connect.CreateCommand()) == null)
    {
    MessageBox.Show("SQLの実行ができません。");
    }
    using (SQLiteDataReader sdr = command.ExecuteReader()) ※←ここ
    {
    List<string[]> tuples = new List<string[]>();
    for (int i = 0; sdr.Read(); i++)
    {
    string[] column = new string[sdr.FieldCount];
    for (int j = 0; j < sdr.FieldCount; j++)
    {
    column[j] = sdr[j].ToString();
    }
    tuples.Add(column);
    }
    }

    /*データベースの接続を閉じる*/
    connect.Close();

    /*リリースの開放*/
    connect.Dispose();
    }
    catch (Exception e)
    {
    MessageBox.Show(e.ToString());
    }
    /*データベースの接続を閉じる*/
    connect.Close();

    Console.Read();
    }

    ※の部分で以下のエラーが出てしまいます。
    正確にはTry{}catch{}のcatchのMessageBoxで出力されます。
    原因はなにかわかりますでしょうか?

    以下エラー
    System.ArgumentNullException: 値をNullにすることはできません。
    パラメータ名:s
    場所 System.Text.UTF8Encoding.GetByteCount(String chars)
    場所 System.Data.SQLite.SQLiteConvert.ToUTF8(String source Text)
    場所 System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn,String strSql, SQLiteStatement previous,UInt32 timeoutMS,String& strRemain)
    場所 System.Data.SQLite.SQLiteCommand.BuildNextCommand()
    場所 System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
    場所 System.Data.SQLite.SQLiteDataReader.NextResult()
    場所 System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd,CommandBehavior behave)
    場所 System.Data.SQLite.SQLiteCommand.ExcuteReader(CommandBehavior behavior)
    場所 System.Data.SQLite.SQLiteCommand.ExcuteReader()
    場所 WindowsFormsApplication1.Main.DB_Sqlite(String no)場所 C:Documents and Setting\A\myDocuments\Visual Studio 2008\Projects\WindowsFormsApplication1\Form1.cs:行 140
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56380  Re[1]: C#でSQLiteを接続
□投稿者/ マサヤ -(2011/01/12(Wed) 12:41:43)
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56385  Re[2]: C#でSQLiteを接続
□投稿者/ える -(2011/01/12(Wed) 14:13:56)
    No56380 (マサヤ さん) に返信
    > ブレークポイントでcommandの中身をみてみたらいかがでしょうか?
    commandの中身は{System.Data.SQLite.SQLiteCommand}でした。

    > >string mySelectQuery = "SELECT * FROM Testtable where No '" + no + "'";
    > これ、SQLインジェクションくらいますよ?
    > http://idealprogrammer.com/net-languages/code-samples/sql-parameters-insert-statement/
    すみません、上記のページログイン画面になってしまい
    見れませんでした。
    私なりに解釈して
    string mySelectQuery = "SELECT * FROM Shipment where No = ''" + no + "''";
    としたのですが
    解釈間違っていますでしょうか?
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56379  Re[1]: C#でSQLiteを接続
□投稿者/ shu -(2011/01/12(Wed) 12:35:03)
    No56373 (える さん) に返信

    SQLiteは使用したことがありませんが

    > string mySelectQuery = "SELECT * FROM Testtable where No '" + no + "'";
    ここのSQL文『=』とか抜けてませんか?
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56384  Re[2]: C#でSQLiteを接続
□投稿者/ える -(2011/01/12(Wed) 14:08:07)
    No56379 (shu さん) に返信
    > ■No56373 (える さん) に返信
    >
    > SQLiteは使用したことがありませんが
    >
    >> string mySelectQuery = "SELECT * FROM Testtable where No '" + no + "'";
    > ここのSQL文『=』とか抜けてませんか?
    >

    抜けていないと思います。

    一応
    string mySelectQuery = "SELECT * FROM Testtable where No = '" + no + "'";
    とやってみたのですが
    結果は同じでした。
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56387  Re[3]: C#でSQLiteを接続
□投稿者/ todo -(2011/01/12(Wed) 14:30:19)
    No は予約語かもしれません。

    SELECT * FROM Testtable WHERE [No] = '1'
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56391  Re[4]: C#でSQLiteを接続
□投稿者/ える -(2011/01/12(Wed) 15:42:54)
    No56387 (todo さん) に返信
    > No は予約語かもしれません。
    >
    > SELECT * FROM Testtable WHERE [No] = '1'
    この書き方でもだめでした。
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56386  Re[3]: C#でSQLiteを接続
□投稿者/ える -(2011/01/12(Wed) 14:23:17)
    2011/01/12(Wed) 14:26:09 編集(投稿者)

    上記のように修正すると、下記のエラーになりました。

    System.Data.SQLite.SQLiteException:SQLite error near "''":syntax error
    場所 System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn,String strSql, SQLiteStatement previous,UInt32 timeoutMS,String& strRemain)
    場所 System.Data.SQLite.SQLiteCommand.BuildNextCommand()
    場所 System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
    場所 System.Data.SQLite.SQLiteDataReader.NextResult()
    場所 System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd,CommandBehavior behave)
    場所 System.Data.SQLite.SQLiteCommand.ExcuteReader(CommandBehavior behavior)
    場所 System.Data.SQLite.SQLiteCommand.ExcuteReader()
    場所 WindowsFormsApplication1.Main.DB_Sqlite(String no)場所 C:Documents and Setting\A\myDocuments\Visual Studio 2008\Projects\WindowsFormsApplication1\Form1.cs:行 140
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56389  Re[4]: C#でSQLiteを接続
□投稿者/ マサヤ -(2011/01/12(Wed) 14:35:11)
記事No.56373 のレス /過去ログ94より / 関連記事表示
削除チェック/

<前の20件 | 次の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 -