2

常に特定のタイプ(ビット、varchar(50)など)のデータを返すいくつかのSQLServer2005テーブルで計算列を使用します。

これらのテーブルは、強く型付けされたデータセットとテーブルアダプターを使用して.NETデータレイヤーによって消費されますが、計算列は特定の型に制約されないため(常に特定の型を返しますが、何でも返すことができます)、.NETは強く生成されません-型付きの列。

ここでの3つの質問:-計算された列は通常、関連するレコードに特定の値があることを確認するか、XPathを使用して関連するXMLドキュメントから単一の値を返します。計算列はこれに適したツールですか、それともこれらの関連データを返すためのより良い方法はありますか?

  • 私の検索では「いいえ」と表示されていますが、データベース自体でこれらの列を強く入力することは可能ですか?

  • Visual Studio DataSetデザイナ内に、適切なタイプを設定し、DataSet / TableAdapterの更新全体でそれらを維持できるようにする回避策はありますか(デザイナはデータベースにクエリを実行してスキーマを更新するため)?

ありがとう!

4

2 に答える 2

2

これらの値を返すために使用するクエリでは、SQL CAST()関数を使用して、必要なデータ型としてそれらをキャストできます。.NETはキャストされたデータ型を認識し、その型をデータセットに入れる必要があると思います。

于 2009-04-27T15:20:10.370 に答える
1

まず、タイプがあります。

次に、SQL Serverは、クライアントが要求した場合、C APIクライアント、C#クライアント、JDBCクライアントなど、タイプをクライアントに通知します。そうでない場合、クライアントはタイプを正しく分類できません。

第三に、計算された列のinformation_schema.columns(またはsyscolumns)行を調べることで、それらがどのタイプであるかを知ることができます。

第4に、CAST演算子を使用して、これらの列を実際の型と互換性のある任意の型にキャストできます。

于 2009-04-27T15:56:40.033 に答える