は、私は、私が達成しようとしているこれは何挿入するのを防ぐ方法 "。" 「/」と「」SQLデータベースに空の文字列としての私のコードで
string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,";
を持っていることは、私は、この文字列から一つ一つの文字を挿入しようとしているということです文字列と数字のみを挿入できるようにするため、例外をスローする必要があります。彼らは空の文字列に変換されるため、".", "/" and "\".
どういうわけか、これらの値がまだテーブルに挿入されます -
すべてが3つの文字を除き、良い作品。理由は分かりませんが、おそらくEF6
がそうしています。
悲しいことに、empty/NULL
の値を許可しないという制約を追加することはオプションではありません。
なぜ、どのようにこれらの文字を空の文字列に変換しないようにするのですか?私は特殊文字を防ぐために使用してい
byte[] data = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };
foreach (var item in specialChar)
{
try
{
string tempName = item.ToString();
upload.Upload(tempName, data);
}
catch (Exception ex)
{
// this is not being thrown at specified characters
}
}
制約:
CONSTRAINT [ck_No_Special_Characters] CHECK (NOT [name] like '%[^A-Z0-9]%')
Upload.cs
var db = new testEntities();
var fileToUpload = new testFile();
// **this is where I'm using my chars**
fileToUpload.name = Path.GetFileNameWithoutExtension(name);
fileToUpload.extension = Path.GetExtension(name);
fileToUpload.data = data;
db.test.Add(fileToUpload);
db.SaveChanges();
あなたはそれらの値を格納しているし、それが予期せずに働いている場合の例を持っていますか?どのように/あなたは 'specialChar'のためのテストを適用していますか - 私たちはそれを見ることができますか? –
あなたは何のように見えますか?どのようにそれらをSQLに挿入していますか?生のSQLを試しましたか? – Liam
そのコードは本当に助けにはなりません...アップロードは何をするのですか?あなたの問題の[最小限で完全で検証可能な例](https://stackoverflow.com/help/mcve)を作成する方法の説明をお読みください – Liam