Kobarin's Development Blog

C#やASP.NETなどについての記録です。

2009-01-01から1年間の記事一覧

App_Codeでコントロールを定義する

App_Codeフォルダ配下に追加したコントロールを使用する方法。 ~/App_Code/webusercontrol.cs using System; using System.Text.RegularExpressions; namespace webusercontrol { /// /// /// public class LabelNumeric : System.Web.UI.WebControls.Label …

URLrewriteを使って、デフォルトページををスラッシュのみのページへリダイレクトさせる

http://example.jp/default.aspx や http://example.jp/index.htm を、 http://example.jp/ にRedirectする方法。以下はweb.configで「/index.aspx」を「/」にRedirectする例。 <system.webServer> <rewrite> <rule name="root_slash" stopProcessing="false"> <match url="^index\.aspx$"/> </match></rule></rewrite></system.webserver>

ASP.NETで、URLrewriteされたページでPostBackしてもURLを変えない方法

ページロード時にFormのActionを書き換えるらしい。 元の(Rewriteされた)URLを保存しているServerVariableを使う。 protected void Page_Load(object sender, EventArgs e) { if ( !String.IsNullOrEmpty(Request.ServerVariables["HTTP_X_ORIGINAL_URL"])…

Google Chart の最大サイズ

GoogleChartの最大サイズについての考察。縦横を乗じて300,000以下ならOKなようだ。 パラメータ 判定 chs=750x400 ○ chs=800x400 × chs=1000x300 ○ chs=1000x350 ×

正規表現 : 改行やタブも含めた文字列

以下の通り (.|\s)* 10文字以下の場合 (.|\s){1,10} メモ [.|\s]{1,10} では何故かNG。

国際化対応による、ユーザー環境に応じた言語を出力

ブラウザの言語設定が日本語のユーザーに対して英語表示しようとする場合、 /App_GlobalResources フォルダでResouceファイルを英語で定義しただけではNGとなる。 ASP.NETのアプリケーション側で標準で日本語出力を行うようになっているためだ(少なくとも…

Title内にキーワードを入れたら、GoogleAdsenseの広告精度が一気に向上

表記の通り。 h2タグ内などにキーワードが存在してもなかなか精度が向上しなかったが、内への記述で解決。 追記;そうでもなかった。引き続き調査。

SqlDataSourceで、手動でParameterを追加する方法

SqlCommandと同じようにコードを書いたらParameterが通っていなかった件。 「@」の要不要が違うらしい。以下、違いを書いておく。 SqlCommandの例 Command1.Parameters.Add("@param1", SqlDbType.NVarChar).Value = "ABCDEF"; SqlDataSourceの例 SqlDataSou…

SqlDataSourceを実行時に、該当件数を取得

データバインド時に該当件数を取得するケースがある。 GridViewのRows.Countを使っても、現在表示中の行数しか取得できないため、ページング等をしていると全体の件数は取得できない。 以下のようにコーディングする事で、SqlDataSourceのSelect実行時に全件…

ASP.NETで、System.Web.UI.Pageを継承しない・・・つまり別クラス内でTraceする方法

System.Diagnostics.Trace.Write("category1", "description1");

ユーザーの言語情報を取得

ユーザーの言語情報を取得する場合、以下のように記述する。 配列になっているが、優先順に並んでいるため。 Label1.Text = Request.UserLanguages[0]; 出力例 英語 日本 フランス en ja fr

コントロールのクローンを生成

ASP.NETには、コントロールのクローンを生成するメソッドがない。 以下、ソース。Sourceと同じ型のコントロールを作り出してプロパティを全てコピーするだけだが、 IDの付与のみ状況によって書き換えが必要になるケース有り。 /// /// コントロールのコピー …

ListViewでデータバインドした値を取得

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) { if (e.Item.ItemType == ListViewItemType.DataItem) { if (DataBinder.Eval(((ListViewDataItem)e.Item).DataItem, "色").ToString() == "ピンク") { Label _lblColor =…

データバインドの値によってEvalの表示を切り替える(文字列版)

' />

SQLで最頻値を求める

「私の服」テーブルの中で、最も多い色を求める。 select 色, count(*) as 枚数 from 私の服 group by 色 having count(*) >= (select max(CNT) from (select count(*) AS CNT from 私の服 group by 色 ) as C ) 色 枚数 赤 23 ↓ 「”私の服”の中で一番多い色…

SQLserverでクロス集計

SQLserver2005以降から対応していたようです。 Table1 会社名 月 契約数 Docono 1月 150 ua 1月 100 Shiftbank 1月 50 Docono 2月 200 ua 2月 130 Shiftbank 2月 80 Docono 3月 50 ua 3月 250 Shiftbank 3月 300 クロス集計結果 select * from [Table1] pivo…

ASP.NET国際化

1つのファイルで管理する方法 アプリケーションルートにASP.NETフォルダ「App_GlobalResources」を追加 同フォルダ内に、デフォルトのリソースファイルを作成。例えば「MyResource.resx」。 同様にして日本語のリソースファイルを作成。デフォルトリソース…

Visual Studio 2008 SP1のインテリセンスを日本語化

VS2008にSP1を適用すると、コーディング時のインテリセンスが英語になってしまう問題の解決方法。 解説 [FIX] Microsoft Visual Studio 2008 Service Pack 1 の英語以外の言語バージョンをインストールした後、ローカライズされた一部の IntelliSense テキス…

C#の正規表現を使った置き換え

string strBefore = "2009/10/14"; Console.Write(strBefore); //「2009/10/14」と表示 Regex reg = new Regex("([0-9]+)/([0-9]+)/([0-9]+)"); strAfter = reg.Replace(strBefore, "$1-$2-$3"); Console.Write(strAfter); //「2009-10-14」と表示

INSERTしたレコードのオートナンバーを取得する方法

オートナンバーを取得する場合、レコードを追加してみないと番号が分かりません。 例えば、ストアドプロシージャを使って親テーブルにINSERT後、INSERTした親テーブルのIDを子テーブルに渡してINSERT・・・等の場面があります。ストアドプロシージャ内で以下…

C#ジェネリックで、クラスを動的配列化!

メモ程度に書いた記事がブクマされていたので、少し解説を加えたいと思います。 クラスをジェネリック(List)化する理由 ListはGridviewやRepeaterコントロールのDataSouceとしても使用できるため、 一般的によく使われるDataTableよりも、データ生成時点で…

住所コード

11桁の住所コードについて。http://oshiete1.goo.ne.jp/qa1352848.html▼販売元 http://www.kokudo.or.jp/

64bit版WindowsServer2008のIIS7で、mdbファイルにアクセスする

インターネット インフォメーション サービス マネージャー 「インターネット インフォメーション サービス(IIS)マネージャー」を起動 サーバー名の下にある「アプリケーションプール」を選択 アプリケーションプールを右クリックして、「詳細設定」を選択…

Microsoft Officeのクリップアートで使っていたアバターが激減した

「アバター」で探したら、似顔絵みたいな画像が追加された一方、従来使っていた画像が激減した。 「頭」で探すと現れるようだ。

SQLserver2008のインストール失敗

「ログオンの失敗・・・」でエラーとなり、インストールできない。以下で解決。 http://social.msdn.microsoft.com/Forums/ja-JP/sqlserverja/thread/48071318-b6dc-4336-9e58-4aa26c5720a9 インストール時のログインユーザを指定するところを「NT AUT…

IIS7で、「Deny all」のアクセス制限をする方法

IIS

ASP.NETのRepeater・DataList・GridView・FormView・DetailsViewで通し番号

GridView <asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField HeaderText="Number"> <ItemTemplate> <%# Container.DataItemIndex + 1 %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> Repeater <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> </itemtemplate></asp:repeater>

64bit環境でのODBCドライバ

結論から言うと無理っぽい事が分かった。以下参照。http://questionbox.jp.msn.com/search.php3?kw=64bit+ODBC%83h%83%89%83C%83o&x=0&y=064bitマシンでODBCデータソースアドミニストレーターを開くと、SQLserver以外のドライバが現れない事が分かる。 T…

CSVファイルのデータをSQLserverにインポート(TextFieldParser編)

string strPath = "c:\test.csv"; DataTable dt = new DataTable(); //Shift JISで読み込む using (Microsoft.VisualBasic.FileIO.TextFieldParser tfp = new Microsoft.VisualBasic.FileIO.TextFieldParser(strPath, System.Text.Encoding.GetEncoding(932)…

CSVファイルのデータをSQLserverにインポート(OleDb編)

string strDir = "d:\"; striing strFileName= "test.csv"; DataTable dt = new DataTable(); //CSVファイルのデータを、DataTableに変換 using (OleDbConnection con = new OleDbConnection()) { con.ConnectionString = String.Format("Provider=Microsoft…