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

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

C# と VB.NET の入門サイト

Re[6]: テーブルアダプターのinsert


(過去ログ 118 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■69565 / inTopicNo.1)  テーブルアダプターのinsert
  
□投稿者/ todo (6回)-(2014/01/09(Thu) 14:03:57)

分類:[.NET 全般] 

先日質問させていただいたばかりなのにまた躓いてしまいました。

現在visualstudio2008、C#を使い勤怠表を作成しています。データベースはmysqlです。

テーブルアダプターでinsertクエリを作り実行できるようにしたいのですが、
クエリビルダを使い列とvaluesを指定して作成。

何故かinsertクエリの引数がデータベースの列型と一致しません。
intで設定しているところをstringやdate型のところをintで入れろと言ってきます。
引数をdate型で設定している一つにするといけるのですが複数設定すると、型や表示(param2などが表示される)がおかしいです。

ならテーブルアダプターのinsertメソッド?でやろうと思ったのですが、
自動的には生成されておらず生成にチェックを入れてもできません。
プロパティのGenerateDBDirectMethodsがfalseだったのでtrueに変えようとしたのですが
データベース オブジェクトの型には、GenerateDBDirect を True に設定できません。
というエラーが出て変更できません。


始めたばかりなのでわかりづらい説明だったらすみません。
何故こうなるのかがわからず困っております。
恐れ入りますがご教示よろしくお願いいたします。
引用返信 編集キー/
■69570 / inTopicNo.2)  Re[1]: テーブルアダプターのinsert
□投稿者/ WebSurfer (156回)-(2014/01/09(Thu) 15:36:31)
No69565 (todo さん) に返信
> 先日質問させていただいたばかりなのにまた躓いてしまいました。
>
> 現在visualstudio2008、C#を使い勤怠表を作成しています。データベースはmysqlです。
>
> テーブルアダプターでinsertクエリを作り実行できるようにしたいのですが、
> クエリビルダを使い列とvaluesを指定して作成。

それは具体的にどうやったのですか?

「テーブルアダプター」というのは Visual Studio の「データソース構成ウィザード」か
「TableAdapter 構成ウィザード」を使って自動生成した型付 DataSet + TableAdapter
のことですよね?

であれば、通常は以下のようにするのですが・・・

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

上記の例は、DB が SQL Server で、2 つのテーブルを扱っていますが、MySQL でテーブル
が一つの場合でも、型付 DataSet + TableAdapter の作り方は基本的に同じですし、デー
タソースウィンドウからドラッグ&ドロップすれば、コードは一行も書かずにアプリは完
成できることも同じです。


> ならテーブルアダプターのinsertメソッド?でやろうと思ったのですが、
> 自動的には生成されておらず生成にチェックを入れてもできません。

2 つのテーブルを JOIN した SELECT クエリやビューをベースに型付 DataSet + TableAdapter
を作ると、更新関係のコードは自動生成されないと思います。

その場合は、GenerateDBDirectMethods にチェックは入れられません。

型付 DataSet + TableAdapter のソースファイルを開いて確認してみてください。
引用返信 編集キー/
■69573 / inTopicNo.3)  Re[2]: テーブルアダプターのinsert
□投稿者/ todo (7回)-(2014/01/09(Thu) 16:32:36)
2014/01/09(Thu) 16:46:06 編集(投稿者)

No69570 (WebSurfer さん) に返信

ご回答有難うございます。

> それは具体的にどうやったのですか?

データセットを設定しサーバーエクスプローラからドラッグ。
データテーブルのテーブルアダプターからクエリの追加→インサートクエリ→クエリビルダで列とvaluesを指定。
というような感じで作りました。
一応プロパティのパラメータズからそれぞれの項目のSourceColumnとDbTypeを設定し直すと
正常にデータベースに設定してある型でインサートできるようになりましたが原因がわかりません。


> 2 つのテーブルを JOIN した SELECT クエリやビューをベースに型付 DataSet + TableAdapter
> を作ると、更新関係のコードは自動生成されないと思います。
>
> その場合は、GenerateDBDirectMethods にチェックは入れられません。

データセットの中には2つテーブルがありますが結合はしていません。

説明がわかりづらくてすみません。
よろしくお願いいたします。
引用返信 編集キー/
■69574 / inTopicNo.4)  Re[3]: テーブルアダプターのinsert
□投稿者/ WebSurfer (158回)-(2014/01/09(Thu) 16:48:03)
No69573 (todo さん) に返信
> 2014/01/09(Thu) 16:46:06 編集(投稿者)
>
> ■No69570 (WebSurfer さん) に返信
> 一応プロパティのパラメータズからそれぞれの項目のSourceColumnとDbTypeを設定し直すと
> 正常にデータベースに設定してある型でインサートできるようになりましたが原因がわかりません。

結局いろいろいじって原因不明のまま解決したということですか?
引用返信 編集キー/
■69577 / inTopicNo.5)  Re[4]: テーブルアダプターのinsert
□投稿者/ todo (8回)-(2014/01/09(Thu) 17:52:33)
No69574 (WebSurfer さん) に返信

そうですね。一応できるようにはなりました。
普通は設定した時点で型は一致していますよね?
引用返信 編集キー/
■69579 / inTopicNo.6)  Re[5]: テーブルアダプターのinsert
□投稿者/ WebSurfer (159回)-(2014/01/09(Thu) 19:14:48)
No69577 (todo さん) に返信
> ■No69574 (WebSurfer さん) に返信
>
> そうですね。一応できるようにはなりました。
> 普通は設定した時点で型は一致していますよね?

わかりません。

質問者さんが具体的に何をしたのか分からないので答えようがありません。

時々、回答者の想像の範囲をはるかに超えることをされる方がおられますし。
引用返信 編集キー/
■69595 / inTopicNo.7)  Re[6]: テーブルアダプターのinsert
□投稿者/ todo (10回)-(2014/01/10(Fri) 16:41:55)
No69579 (WebSurfer さん) に返信

ご返信有難うございました。
そうですね。ちゃんとやっているつもりでも変なところを触ってしまっているのかも…。

一応インサートは実行できるようになりましたので解決とさせて頂きます。
ご丁寧にありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -