RSS

月別アーカイブ: 1月 2017

ASP.NET:HTMLタグを含む文字列がSQL Serverのテーブルに書き込みできない件

ASP.NET ではデフォルトでデータベースへ格納する文字列の検証をしているようで、HTMLのscriptタグを含んだ文字列をテーブルへ書こうとするとエラーになってしまいました。

aspnet_sqlserver_script

これを回避するには、ValidateInput 属性を false にしてやるとよいようです。

        [ValidateInput(false)]
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult ViewAddClip(Pixels p)
        {
       ....
        }
 
コメントする

投稿者: : 2017/01/29 投稿先 未分類

 

ASP.NET: ASP.NET App_Codeフォルダ

App_Code フォルダには、ソースコードを置くためのフォルダだそうです。(詳しくは下記)

https://msdn.microsoft.com/ja-jp/library/t990ks23(v=vs.100).aspx

VB や C# ソースを置いておけば自動的にコンパイルされるそうですが、そうでないファイル(つまりプログラミング言語のソースでない XML など) はもちろんコンパイルはされないと書いてあります。

問題は、Visual Studio でここに置いた VB や C# ソースをデフォルトで参照できない問題があります。下のように App_Code に Class1.cs を追加したとします。

app_code

エディタで Class1 をコードに追加すると、見つからないので赤線が表示されます。

class1_notvisible

これを回避するには、Class1 のプロパティで「ビルドアクション」を「コンパイル」に変更します。デフォルトは「コンテンツ」です。上の説明にはデフォルトでコンパイルされると書いてあるので、微妙な仕様(バグ?)ですね。

class1_compile

 
コメントする

投稿者: : 2017/01/29 投稿先 ASP.NET

 

SQL Server: bcp ユーティリティの使用例

フォーマットファイルなしでインポート、エクスポートする例です。
-c 無しの場合は、プロンプトが表示されて自動的にフォーマットファイルが作成されます。
インポートファイルの文字コードはシフトJIS、フィールド区切りはカンマ、行末はCRLFを仮定しています。
ファイルの先頭行はヘッダで、これを無視するようにしています。

インポートの場合

@echo off
rem -S {data source}
rem -T trusted connection
rem -F {header count}
rem -d {initial catalog}
rem -f {format file}
rem -k keep NULL
rem -t {field termination char}
rem -c no prompts
rem -E keep ID (Primary key) value
bcp dbo.Codes in c:\temp\Codes.csv -S localhost -d S3App -T -F 1 -k -t , -c -E

bcp はけっこう気難しいコマンドで行末の違い(LFかCRLFか)でエラーになったりします。)

コピーを開始しています...
12 行コピーされました。
ネットワーク パケット サイズ (バイト): 4096
クロック タイム (ミリ秒) 合計     : 1      平均 : (12000.00 行/秒)

エクスポートの場合

エクスポートの場合は方向指示を in でなく out にします。
あとは同じで大丈夫でした。

C:\temp> bcp dbo.Codes out c:\temp\CodesOut.csv -S localhost -d S3App -T -F 1 -k -t , -c -E
 
コメントする

投稿者: : 2017/01/01 投稿先 Database