一部のMS SQL型と互換性のある文字列かどうかを確認する方法はありますか? データベースのテーブルに文字列を挿入する前に、文字列を検証します。SQL Serverのデータ型互換性
編集:私はいくつかの文字列がなどvarchar型、char型、ビット、と互換性があるかどうかを確認する方法を探しています...
一部のMS SQL型と互換性のある文字列かどうかを確認する方法はありますか? データベースのテーブルに文字列を挿入する前に、文字列を検証します。SQL Serverのデータ型互換性
編集:私はいくつかの文字列がなどvarchar型、char型、ビット、と互換性があるかどうかを確認する方法を探しています...
私はこれを正しく解釈していた場合、あなたがそのあなたの文字列として入力を持っていますSQL Serverデータベースに格納する場合、列はint
,float
、money
などの異なる種類になります。文字列が適切な型に変換されるかどうかを知りたい
parameterized queryを使用して、パラメータとして文字列をSqlCommand
に渡し、パラメータに適切なSQLデータ型を設定することが1つの方法です。変換しないデータでコマンドを実行すると、FormatExceptions
が得られます。
さらに明示的に、適切なSQLデータ型で文字列を解析することができます。変換に失敗すると、FormatException
もスローされます。
文字列を解析しても、SqlCommand
、またはそれ以上のエンティティフレームワークなどの厳密に型指定されたORMレイヤでパラメータ化されたSQLクエリを使用することをお勧めします。 EFはSQL型を.Net型に自動的にマップするので、エンティティのプロパティの1つに互換性のない値を代入しようとすると、データ型の自動検証が自動的に行われます。
コードSQLデータ型を解析する:
try
{
// throws FormatExcpetion
System.Data.SqlTypes.SqlInt16 i = System.Data.SqlTypes.SqlInt16.Parse("test");
}
catch (FormatException)
{
// handle it
}
try
{
// i will be set to 10
System.Data.SqlTypes.SqlInt16 i = System.Data.SqlTypes.SqlInt16.Parse("10");
}
catch (FormatException)
{
// handle it
}
あなたが解決しようとしている具体的な問題について詳しく説明できますか? –
'string'が' char'、 'varchar'、' nvarchar'、 'text'などと同じであるかのような意味ですか?どのような種類のバリデーションをストリングでやっていますか? – Tim
ADO.NET、EF、またはC#としてマークする理由についてお話ししますか? –