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

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

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

全過去ログを検索

<< 0 >>
■19600  Re[6]: 技術系ブログについて
□投稿者/ アキラ -(2008/05/26(Mon) 17:06:31)
>
    No19597 (ネタ好き さん) に返信
    > 私は臆病なので、ブログといえば荒らしとか炎上という単語が思い浮かぶのですが、それらの困った人への対処はどうしておられますか?

    『BEST SOFTWARE WRITING』に書いてたのですが
    ブログには荒らしってほとんどないそうですよ。
    (私も荒らされたことはないです)

    炎上は・・・自分の考えをしっかり持って、相手の考えもしっかり受け止めればそのうち沈静化するでしょう
記事No.19584 のレス /過去ログ38より / 関連記事表示
削除チェック/

■21378  Re[21]: 宇宙に果てはあるの?
□投稿者/ ロック -(2008/07/01(Tue) 14:13:11)
    なんとかとなんとかは紙一重というけど
    もしかして、前世はコペルニクスかもしれませんよ?
    数年後は勝ち組の人間かもしれませんので、マークしときましょう。

    わずか数行のプログラムって、こんな感じ?(w
    for(;;光++){
     宇宙=光*時間;
    }
記事No.21232 のレス /過去ログ41より / 関連記事表示
削除チェック/

■73909  Re[13]: tweetSharpのOauth認証について
□投稿者/ kouma -(2014/11/14(Fri) 00:18:31)
    2014/11/14(Fri) 00:19:23 編集(投稿者)

    皆様、長いお付き合いをありがとうございました。

    結論を述べさせていただくと、無事にプログラムが動作致しました。
    若輩者に懇切丁寧に解説していただきありがとうございました。

    TweetSharpのUserID32bitの問題は取り上げている所が少なく、ある程度開発に慣れていないと戸惑うことが多かったです。

    後続の方に少しでも力添え出来ればと思い、この場をお借りして問題解決の方法を書かせていただきたいと思います。

    -------------------------------------------------------------------------------------------------------------

    1.https://github.com/danielcrenna/tweetsharpからtweetsharp-master.zipをダウンロードする

    2.Visual Studioを起動し、「ファイル(F)」→「開く(O)」「プロジェクト/ソリューション(P)」で、解凍したtweetsharp-master.zip内のsrc\TweetSharp.slnを開く。
    (slnをダブルクリックしても、こちらでやった限りだと起動しませんでした)

    3.ソリューションエクスプローラーで、TweetSharp以外のプロジェクトをアンロードし、TweetSharp右クリック→ビルドをクリック。

    4.HammmockとJson.NETが足りないとエラーが出るので、NuGetでインストール。
    (スレッド公開時Ver:Hammmock1.3.1 Json.NET6.0.6)

    5.http://msdn.microsoft.com/ja-jp/library/ms185328.aspxこちらを参考にして、アクティブソリューションプラットフォームを設定する。

    6.再度、TweetSharp右クリック→ビルドをクリック。\src\TweetSharp\bin\x64の中に、“TweetSharp.dll” “Hammock.ClientProfile.dll” “Newtonsoft.Json.dll”が生成される。
    分かりやすいところへコピー

    7.自分が制作しているソリューションも、アクティブソリューションプラットフォームを設定する。

    8.自分が制作しているソリューションのソリューションエクスプローラーにある参照設定を右クリック→「参照の追加(R)」

    9.参照タブから、先ほどコピーした3つのファイルを追加。

    -------------------------------------------------------------------------------------------------------------

    自分はこの行程で今回の問題の解決へ至りました。

    トピック内に「アンオフィシャルVer」というものがありますが、NuGet経由で差し替えても上手く動作しませんでした。
    (差し替え方法が間違っていたのかもしれません)

    最後に、今回のトピックでお力添えしていただいた皆様にもう一度感謝したいと思います。
    ありがとうございました。長文失礼いたしました。
記事No.73876 のレス / END /過去ログ124より / 関連記事表示
削除チェック/

■89191  c#のデータベース削除について
□投稿者/ tetris -(2018/11/06(Tue) 13:56:47)

    分類:[C#] 

    どうしてもエラーが改善できないため、助けを願います。
    No89139の質問をしたプログラムの続きです。

    やりたいこととしてはaccdb形式のデータベースのテーブル データ一覧_T からフォーム上のListviewにデータを抽出していて
    フォーム上のListviewからデータを消すと、データベースのデータも消える という仕組みを作りたいです。

    ListViewからデータを抽出するところまではできています。

    プログラムは次のようになっています。
          ListViewItem item = new ListViewItem();
    item = listView1.SelectedItems[0];

          conn.Open();
    command.CommandText = "DELETE From データ一覧_T WHERE 時刻=?";
    command.Parameters.AddWithValue("@zikoku", item);
    command.Connection = conn;
    command.ExecuteNonQuery();
    conn.Close();

    最初にitemという変数にListview1上でクリックし選択したデータ(これが時刻)を代入し、itemに時刻情報を入れます(String型)
    仮にこの時の時刻情報が「09時00分」という情報だったとします。
    これを WHERE 時刻 =? とすることでパラメータクエリを使って次の行でitem変数を入れています。

    こうすることによってデータベース上で時刻が 09時00分 の列が消えてくれれば・・・と思っています。
    ところがエラーが出てしまい、正常に実行ができません。 エラーメッセージは以下の通りです。
    デリートを実行するボタンを押したタイミングで

    "複数ステップの OLE DB の操作でエラーが発生しました。 各OLE DB の状態の値を確認してください。作業は終了しませんでした"

    と出ます。 ちなみに
    command.CommandText = "DELETE From データ一覧_T WHERE 時刻='09時00分'";  と書き換え
    command.Parameters.AddWithValue("@zikoku", item); この行をコメントアウトした結果、正常に09時00分のデータを削除することができました。

    何か情報が足りないところがあったら申し訳ございません。ご協力お願い致します。
親記事 /過去ログ153より / 関連記事表示
削除チェック/

■89192  Re[1]: c#のデータベース削除について
□投稿者/ WebSurfer -(2018/11/06(Tue) 14:31:57)
    No89191 (tetris さん) に返信

    型を意識してますか?

    > item = listView1.SelectedItems[0];

    の item の型は何でしょう? ListViewItem クラスのオブジェクトでは?

    とすると、それを、

    > command.Parameters.AddWithValue("@zikoku", item);

    とはできないのでは?
記事No.89191 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89193  Re[1]: c#のデータベース削除について
□投稿者/ WebSurfer -(2018/11/06(Tue) 14:46:27)
    No89191 (tetris さん) に返信

    【追伸】

    > command.CommandText = "DELETE From データ一覧_T WHERE 時刻='09時00分'";  と書き換え
    > command.Parameters.AddWithValue("@zikoku", item); この行をコメントアウトした結果、
    > 正常に09時00分のデータを削除することができました。

    であれば、

    command.CommandText = "DELETE From データ一覧_T WHERE 時刻=?";
    command.Parameters.AddWithValue("@zikoku", "09時00分");

    とすれば同じ結果になると思います。確認してみてください。それでエラーになる理由が分かる
    のでは?
記事No.89191 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89194  Re[2]: c#のデータベース削除について
□投稿者/ tetris -(2018/11/06(Tue) 16:05:17)
    2018/11/06(Tue) 16:06:38 編集(投稿者)


    No89193 (WebSurfer さん) に返信

    > command.CommandText = "DELETE From データ一覧_T WHERE 時刻=?";
    > command.Parameters.AddWithValue("@zikoku", "09時00分");
    >
    > とすれば同じ結果になると思います。確認してみてください。それでエラーになる理由が分かる
    > のでは?

    試してみたところ、確かに削除ができました。
    取得した値がListViewクラスのオブジェクトだからできなかったのだとわかりました。

    ですが、そもそもListViewで選択した場所の値を取得して、ListViewクラスのオブジェクトではなくす方法がわかりません・・・。


    申し訳ありません、ついでなのですが、WebSurferさんは相当詳しいようですが、どれくらいの期間勉強されてるんですか?
記事No.89191 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89197  Re[3]: c#のデータベース削除について
□投稿者/ WebSurfer -(2018/11/06(Tue) 16:46:26)
    No89194 (tetris さん) に返信

    > そもそもListViewで選択した場所の値を取得して、ListViewクラスのオブジェクトではなくす方法がわかりません・・・。

    質問者さんが ListView をどのように作ったのか分からない自分には具体的にどうすればいいの
    かは分かりません。

    自分が言えるのは、もし、

    item = listView1.SelectedItems[0];

    で取得できる ListViewItem オブジェクトの中に日付のデータが含まれていて、それを取得でき、
    取得した日付データを "09時00分" というような string 型に変換できるなら、

    string date = <上で取得した string 型データ>;
    command.Parameters.AddWithValue("@zikoku", date);

    としてはいかが・・・ということ程度です。

    でも、たぶん、それができたとしても、やり方が間違っている(とまでは言えなくても不適切)な
    のではないかと思います。

    Access のテーブルには主キーはないのですか? なければオートナンバーで ID 列を作って、それ
    を使って、クエリを、

    DELETE From データ一覧_T WHERE ID=?

    のようにした方が良いと思います。
記事No.89191 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89198  Re[3]: c#のデータベース削除について
□投稿者/ WebSurfer -(2018/11/06(Tue) 17:02:31)
    No89194 (tetris さん) に返信

    【追伸】

    どういう目的に ListView を使っているのか分かりませんが、質問者さんが作っているのが
    Windows Forms アプリで、Access のテーブルのレコード一覧を表形式で表示し、それをユー
    ザーが操作して編集し、編集結果を Access のテーブルに反映したいということであれば、
    DataGridView を使った方がよさそうです。

    Visual Studio のウィザードを使って、一度 DataGridView を使った定番の構成のアプリを
    作ってみてはいかがでしょう?

    以下のチュートリアルは SQL Server の場合ですが、Access でもほぼ同じ手順で可能です。

    チュートリアル : データベースへのデータの保存 (単一テーブル)
    https://msdn.microsoft.com/ja-jp/library/0f92s97z(v=vs.120).aspx

    10 行でズバリ !! 非接続型のデータ アクセス (ADO.NET) (C#)
    https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-cbfe7688

    チュートリアルに従って、Visual Studio のデータソース構成ウィザードを利用して型付
    DataSet + TableAdapter を作り、それを利用してアプリを自動生成させると、以下のペー
    ジの図のような構造のアプリが、ほとんど自分でコードを書くこと無しに作れます。

    Windows フォーム アプリケーションでのデータへの接続
    https://msdn.microsoft.com/ja-jp/library/wxt2cwcc(v=vs.120).aspx

    操作に慣れると 10 分もかからず作れるはずです。今回のような問題に悩むことはなくなり、
    開発工数は激減するはずです。保守工数も減るはずです。お試しください。

    ただし、Access の場合、一つだけ注意しなければならないのがオートナンバーを使っている
    場合、INSERT した時に DB 側で設定したオートナンバー値を DataSet に書き込むところまで
    は面倒を見てくれないことです。(SQL Server の場合は面倒見てくれます)

    それは以下の記事のようにすれば解決できます。そこが SQL Server と違ってひと手間多くな
    るところですが。

    Access の更新
    http://surferonwww.info/BlogEngine/post/2010/09/04/Updating-Access.aspx
記事No.89191 のレス /過去ログ153より / 関連記事表示
削除チェック/

■89212  Re[4]: c#のデータベース削除について
□投稿者/ tetris -(2018/11/08(Thu) 11:29:53)
    No89198 (WebSurfer さん) に返信

    たくさんの助言ありがとうございます。
    問題は解決することができました。

    おっしゃっていた通り、主キーをオートナンバーで使って
    WHERE ID =? のように指定して、IDを指定してあげたら正常に動作することができました。
    お世話になりました。

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

■89216  Re[5]: c#のデータベース削除について
□投稿者/ WebSurfer -(2018/11/08(Thu) 12:22:51)
    No89212 (tetris さん) に返信

    時間が取れたら No89198 で説明した DataGridView を使ったアプリを作ってみることを
    お勧めします。

    たぶん、目から鱗ということになると思います。
記事No.89191 のレス / END /過去ログ153より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -