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

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

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

SQLServerのテーブル構造変更後のエラー

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

■85110 / inTopicNo.1)  SQLServerのテーブル構造変更後のエラー
  
□投稿者/ こてつ (1回)-(2017/09/11(Mon) 20:56:49)

分類:[C#] 

お世話になっております。
環境 Win7 64bit VS2017 C# .netFramework4.7 SQLServer2008R2Developer
フォームアプリ作成中にデータベースのテーブル構造を変更した際に数千のエラーが出現しました。
主なものは XXXとXXX間があいまいです といったものです(両方のXXXは同じ内容でおそらくデータセット内のすべてのフィールド)。
なにが変わってしまったのでしょうか?
どのように対処すればよろしいのでしょうか?
ご存知の方いらっしゃいましたら御教授よろしくお願いします。

引用返信 編集キー/
■85114 / inTopicNo.2)  Re[1]: SQLServerのテーブル構造変更後のエラー
□投稿者/ sima (1回)-(2017/09/11(Mon) 23:54:36)
No85110 (こてつ さん) に返信
> お世話になっております。
> 環境 Win7 64bit VS2017 C# .netFramework4.7 SQLServer2008R2Developer
> フォームアプリ作成中にデータベースのテーブル構造を変更した際に数千のエラーが出現しました。
> 主なものは XXXとXXX間があいまいです といったものです(両方のXXXは同じ内容でおそらくデータセット内のすべてのフィールド)。
> なにが変わってしまったのでしょうか?
> どのように対処すればよろしいのでしょうか?
> ご存知の方いらっしゃいましたら御教授よろしくお願いします。
> 

ご存知の者ではありませんが、あなたの説明では他人に分かり辛いと思いました
先ず、対処の方法については、起きてりることが分かる必要があります
コンパイル時のエラーなのか、実行時のエラーなのかについて何も示せていません

原因が分からない以上的確な対応策(=回答)は出せません

ただし、 x と x 間が "あいまいです" というメッセージはクエリーの解析、実行時
のものだとすれば次の場合ではないかと考えられます

二つ以上の表(例えば A と B とする)を扱っていて、それぞれに、同じ列名 X がある場合
列名 X だけでは、表 A B のどちらの列なのか決められない場合
(ex.) select X
      from A left join B on B.id=A.id
      where X>0;
A には id と X とがある
B には id と X とがある

参考になればいいのですが...


引用返信 編集キー/
■85142 / inTopicNo.3)  Re[2]: SQLServerのテーブル構造変更後のエラー
□投稿者/ こてつ (3回)-(2017/09/13(Wed) 10:58:57)
No85114 (sima さん) に返信
simaさんありがとうございます。

エラー発生の手順を書きますと、

1.以前はコンパイルエラーはなかった(型付データセット使用)
2.SQLServerのSSMSでデータベースのテーブルに列を追加した
3.VSのデータセットデザイナで該当テーブルの列を追加し、データテーブルおよびテーブルアダプタを変更
4.ビルド後、数千のエラー発生

データベースの設計が確定していないのにプログラムを作り始めてしまったことが大問題ではあるのですが、
3のデータテーブルとテーブルアダプタを新規に作らず使いまわそうとしてしまったことが今回のエラーの
原因かと考えております。
データセット.xsdを少し手直しして改善できるのであればそうしようと思うのですが、
より深くはまってしまう気もするので、エラー発生前に戻って素直にやり直したほうがよさそうですよね


引用返信 編集キー/
■85144 / inTopicNo.4)  Re[3]: SQLServerのテーブル構造変更後のエラー
□投稿者/ WebSurfer (1302回)-(2017/09/13(Wed) 12:02:01)
No85142 (こてつ さん) に返信

> データセット.xsdを少し手直しして改善できるのであればそうしようと思うのですが、
> より深くはまってしまう気もするので、エラー発生前に戻って素直にやり直したほうがよさそうですよね

Visual Studio のデータソース構成ウィザードを利用して型付 DataSet + TableAdapter を
作ったのだと思いますが、だとすればその通りです。

最初に戻って、手直しした SQL Server のテーブルをベースに型付 DataSet + TableAdapter
を作り直して、それからアプリを作った方が間違いないと思います。


どのような構造のアプリを作っているのか分かりませんが、できれば一度 Visual Studio の
ウィザードを使って定番の構成のアプリを作ってみてはいかがでしょう?

DB が SQL Server の場合ですが、以下のチュートリアル、

チュートリアル : データベースへのデータの保存 (単一テーブル)
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 分もかからず作れるはずです。今回のような問題に悩むことはなくなり、
開発工数は激減するはずです。保守工数も減るはずです。お試しください。
引用返信 編集キー/
■85149 / inTopicNo.5)  Re[4]: SQLServerのテーブル構造変更後のエラー
□投稿者/ こてつ (4回)-(2017/09/13(Wed) 20:40:47)
No85144 (WebSurfer さん) に返信
WebSurferさんありがとうございました。

エラーが発生したところまで戻ってやり直すことにします。
解決済み
引用返信 編集キー/
■85150 / inTopicNo.6)  Re[5]: SQLServerのテーブル構造変更後のエラー
□投稿者/ WebSurfer (1303回)-(2017/09/13(Wed) 21:18:14)
No85149 (こてつ さん) に返信

> エラーが発生したところまで戻ってやり直すことにします。

「エラーが発生したところ」と言うと、No85142 でいうと 4 になるように思えます。

私がお勧めしたのは、手直しした DB をベースにゼロから作り直すということのですが・・・


引用返信 編集キー/
■85154 / inTopicNo.7)  Re[6]: SQLServerのテーブル構造変更後のエラー
□投稿者/ こてつ (5回)-(2017/09/14(Thu) 12:39:03)
No85150 (WebSurfer さん) に返信
> ■No85149 (こてつ さん) に返信

またもや言葉足りずに申し訳ありません。

エラーが発生したDataTableとTableAdapterを削除し、それらを新規に作りました。
手取り足取りありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ