2015年11月14日土曜日
NetBeans でコードスニペットを登録する方法
NetBeans でコードスニペットを登録する方法は以下のとおりです。
1.「ツール」 → 「オプション」を選択
2.「エディタ」タブ → 「コード・テンプレート」 からテンプレートを登録します。
ここでは HTML のスニペットとして「jq」という省略名と、jQuery CDN へのリンクコードを登録しています。
3.2で登録した省略キーを入力し、Tab キーを押下します。
すると、登録されているコードが生成されます。
2015年11月8日日曜日
C# を使った順列
ある数値 n から、順に1ずつ減らした r までを階乗するアルゴリズムです。
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int n, r, a, i; Console.WriteLine("始めの数値"); n = int.Parse(Console.ReadLine()); Console.WriteLine("次の数値"); r = int.Parse(Console.ReadLine()); a = 1; if (n >= r && r >= 0) { i = n; while (i >= n - r + 1) { a = a * i; i = i - 1; Console.WriteLine(a); } } else { Console.WriteLine("計算できません。"); } Console.ReadLine(); } } }
2015年11月7日土曜日
NetBeans JavaScript 自動補完
NetBeans を使ってみたところ、JavaScript の IntelliSense がデフォルトで有効になっていました。スクリーンショットは jQuery の IntelliSense です。そう、jQuery も最初から機能の候補をリストアップしてくれて、もう NetBeans に乗り換えようかなと真剣に考える素晴らしさです。
2015年9月23日水曜日
ASP.NET ブラウザの言語設定を取得する方法
ASP.NET でユーザーのブラウザ言語設定を取得するプロパティが用意されていることを知りました。忘れる前にメモしておきます。
HttpRequest.UserLanguages プロパティ
https://msdn.microsoft.com/ja-jp/library/system.web.httprequest.userlanguages.aspx
protected void Button1_Click(object sender, EventArgs e) { String[] languages = Request.UserLanguages; for (int i = 0; i < languages.Length; i++) { Debug.WriteLine(languages[i]); } }
HttpRequest.UserLanguages プロパティ
https://msdn.microsoft.com/ja-jp/library/system.web.httprequest.userlanguages.aspx
2015年8月1日土曜日
C# : DataTable を JSON に変換する関数
今日こちらの関数を使うことがあり、今後も利用する可能性があるのでこちらにメモ
From DataTable in C# .NET to JSON
http://stackoverflow.com/a/12063095
From DataTable in C# .NET to JSON
http://stackoverflow.com/a/12063095
2015年6月21日日曜日
WCF サービスとオーバーロード
WCF サービスでオーバーロードで取得データを初期化時とそうでない時とで切り替えようと画策してみましたが、WCF サービスではオーバーロードがサポートされていませんでした。
自分はこんなかんじで引数の違う、同一名の関数を用意していました。
WCF サービス(例えば Service1.cs) で定義した関数は、aspx 側でインテリセンスが自動的にクラス名や関数をリストアップしてくれているのですが、このオーバーロードを仕込んだ後はインテリセンスも表示されなくなりました。あと、上記のオーバーロード状態では、ビルドは通るのですがクライアントサイドの JavaScript でサービスを初期化しようとするとサービスが見つかりません。
そのまま実行するとこんなランタイムエラーが出ます。
ワークアラウンドとしては2つ
1.関数を全く異なる名前にしてしまう
2.OperationContract 属性に Name プロパティを指定して関数を別名登録
参考情報:
Can we implement method overloading in web service class?
http://stackoverflow.com/questions/10320006/can-we-implement-method-overloading-in-web-service-class
自分はこんなかんじで引数の違う、同一名の関数を用意していました。
[OperationContract] public Dictionary<int, string> GetWork() { ... } [OperationContract] public Dictionary<int, string> GetWork(int id) { ... }
WCF サービス(例えば Service1.cs) で定義した関数は、aspx 側でインテリセンスが自動的にクラス名や関数をリストアップしてくれているのですが、このオーバーロードを仕込んだ後はインテリセンスも表示されなくなりました。あと、上記のオーバーロード状態では、ビルドは通るのですがクライアントサイドの JavaScript でサービスを初期化しようとするとサービスが見つかりません。
そのまま実行するとこんなランタイムエラーが出ます。
ワークアラウンドとしては2つ
1.関数を全く異なる名前にしてしまう
2.OperationContract 属性に Name プロパティを指定して関数を別名登録
1と2両方とも、JavaScript 的には別名の関数になりますが、C# コードはオーバーロードとなりますので管理はし易くなるはず![OperationContract(Name = "GetAllWork")] public Dictionary<int, string> GetWork() { ... }
参考情報:
Can we implement method overloading in web service class?
http://stackoverflow.com/questions/10320006/can-we-implement-method-overloading-in-web-service-class
2015年6月20日土曜日
ConfigurationManager クラスを使ってデータベース接続文字列を取得する
ConfigurationManager クラスを利用することで Web.config に定義されているデータベースへの接続文字列(ConnectionStrings)を取得することができます。
下記例では「ConnectionString1」という名前で登録されている接続文字列を C# コード側で取得しています。
Web.config
C# コード
リンク:
ConfigurationManager.ConnectionStrings プロパティ
https://msdn.microsoft.com/ja-jp/library/system.configuration.configurationmanager.connectionstrings(v=vs.110).aspx
下記例では「ConnectionString1」という名前で登録されている接続文字列を C# コード側で取得しています。
Web.config
<configuration> <connectionStrings> <add name="ConnectionString1" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\MyDB1.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> ... </configuration>
C# コード
// 接続文字列を指定してデータベースを指定 string ConnectionStr = ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString; SqlConnection conn = new SqlConnection(ConnectionStr);
リンク:
ConfigurationManager.ConnectionStrings プロパティ
https://msdn.microsoft.com/ja-jp/library/system.configuration.configurationmanager.connectionstrings(v=vs.110).aspx
2015年6月15日月曜日
ASP.NET で Ajax 対応 WCF サービスを利用する
先日の記事では WCF サービスの利用方法を紹介しました。今回は Ajax 対応 WCF の利用方法を紹介します。
WebSite を用意し、ソリューションエクスプローラーから Web サイト名を右クリックします。「追加」→「新しい項目の追加」と進み、Visual Studio のテンプレートを表示します。一覧から WCF サービスを追加します。名前は「Service.svc」としています。
「Service.svc」を追加すると、自動的に「App_Code」フォルダ及びフォルダ内に「Service.cs」も生成されます。ここで生成された「Service.cs」の内部にサービスのロジックを実装していきます。
Service.cs
続いて Form 上に ScriptManager と HTML Button を配置します。
Ajax WCF サービスは ScriptManager と連携して動作します。ScriptManager の Services コレクションに、先ほど作成した Service.svc を登録します。
ASPX のソースコードはこうなります。
ここまでで WCF Ajax サービスの下準備が整いました。最後に HTML Button のクリックイベントに関数を登録し、非同期通信でサービスの呼び出しと結果を受け取ります。
登録した関数内に、サービスを呼び出す実装をします。
ボタンをクリックすると、非同期通信でサービスから取得した値がダイアログ内に表示されます。すごく地味(^_^;)

サンプルは下記よりダウンロードできます。
WCF_Ajax.zip
WebSite を用意し、ソリューションエクスプローラーから Web サイト名を右クリックします。「追加」→「新しい項目の追加」と進み、Visual Studio のテンプレートを表示します。一覧から WCF サービスを追加します。名前は「Service.svc」としています。
「Service.svc」を追加すると、自動的に「App_Code」フォルダ及びフォルダ内に「Service.cs」も生成されます。ここで生成された「Service.cs」の内部にサービスのロジックを実装していきます。
Service.cs
[ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class Service { // HTTP GET を使用するために [WebGet] 属性を追加します (既定の ResponseFormat は WebMessageFormat.Json)。 // XML を返す操作を作成するには、 // [WebGet(ResponseFormat=WebMessageFormat.Xml)] を追加し、 // 操作本文に次の行を含めます。 // WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"; [OperationContract] public void DoWork() { // 操作の実装をここに追加してください return; } // 追加の操作をここに追加して、[OperationContract] とマークしてください // 下記2つの関数を追加 [OperationContract] public string DoMyWork() { // 文字列を返す関数 return "DidMyWork"; } [OperationContract] public int DoMyWorkWithParam(int number) { // 計算結果を返す関数 return number * 50; } }
続いて Form 上に ScriptManager と HTML Button を配置します。
<form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <input id="Button1" type="button" value="button" /> </div> </form>
Ajax WCF サービスは ScriptManager と連携して動作します。ScriptManager の Services コレクションに、先ほど作成した Service.svc を登録します。
ASPX のソースコードはこうなります。
<asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServiceReference Path="Service.svc" /> </Services> </asp:ScriptManager>
ここまでで WCF Ajax サービスの下準備が整いました。最後に HTML Button のクリックイベントに関数を登録し、非同期通信でサービスの呼び出しと結果を受け取ります。
<input id="Button1" type="button" value="button" onclick="callService()" />
登録した関数内に、サービスを呼び出す実装をします。
<script type="text/javascript"> function callService() { var service = new Service(); service.DoMyWork(onSuccess, null, null); service.DoMyWorkWithParam(30, onSuccess, null, null) } function onSuccess(result) { alert(result); } </script>実行結果
ボタンをクリックすると、非同期通信でサービスから取得した値がダイアログ内に表示されます。すごく地味(^_^;)

サンプルは下記よりダウンロードできます。
WCF_Ajax.zip
2015年6月14日日曜日
SQL Server へ接続して Insert 文でテーブルにレコードを追加する(C#)
C# コードで SQL Server にあるテーブルに接続して、行を追加する例です。前回の記事同様、データベースへの接続には、SqlDataSource インスタンスを生成して接続文字列を予め設定しています。
ASPX:
<asp:TextBox ID="TextBox1" runat="server" Height="216px" TextMode="MultiLine" Width="334px"></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Article]"></asp:SqlDataSource>
コードビハインド:
protected void Button1_Click(object sender, EventArgs e) { // 接続文字列を指定してデータベースを指定 SqlConnection conn = new SqlConnection(this.SqlDataSource1.ConnectionString); // 接続を開く conn.Open(); string sqlQuery = "INSERT INTO Article (Content) VALUES (@Content)"; // コマンドを作成する SqlCommand cmd = new SqlCommand(sqlQuery, conn); SqlParameter contentParam = new SqlParameter("@Content", this.TextBox1.Text); cmd.Parameters.Add(contentParam); // コマンドを実行 cmd.ExecuteNonQuery(); // 接続を閉じる conn.Close(); }
2015年6月13日土曜日
SQL Server へ接続して Select 文でテーブルを取得する(C#)
C# コードで SQL Server にあるテーブルに接続して、取得した結果(SqlDataReader)を DataTable に読み込む例です。データベースへの接続には、SqlDataSource インスタンスを生成して接続文字列を予め設定しています。
ASPX:
コードビハインド:
参考情報:
10 行でズバリ !! 接続型のデータ アクセス (ADO.NET) (C#)
https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-4d84bfef
ASPX:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"> </asp:SqlDataSource>
コードビハインド:
// 接続文字列を指定してデータベースを指定 SqlConnection conn = new SqlConnection(this.SqlDataSource1.ConnectionString); // 接続を開く conn.Open(); // テーブルを取得する string sqlQuery = "SELECT * FROM Article"; // コマンドを作成する SqlCommand cmd = new SqlCommand(sqlQuery, conn); // コマンドを実行 SqlDataReader reader = cmd.ExecuteReader(); // DataTable を作成する DataTable dt = new DataTable(); // SqlDataReader からデータを DataTable に読み込む dt.Load(reader); //while (reader.Read()) // 1 行ずつ読み込む場合 //{ // Debug.WriteLine("Id: {0} - Content: {1}", // reader["Id"], reader["Content"]); //} // リーダーを閉じる reader.Close(); // 接続を閉じる conn.Close();
参考情報:
10 行でズバリ !! 接続型のデータ アクセス (ADO.NET) (C#)
https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-4d84bfef
2015年6月7日日曜日
Identity シードをリセットする
Identity シードをクリアするコマンドです。ここではシードを 0 に戻しています。
他の任意のシードにしたいときは適宜数値を割り当てます。
他の任意のシードにしたいときは適宜数値を割り当てます。
DBCC CHECKIDENT ('テーブル名', RESEED, 0) GO
2015年6月6日土曜日
Udacity : Intro to jQuery を受講してみた
Udacity で提供されている Intro to jQuery というコースを受講してみました。
moocs は多くの場合無料で講義を受けることができるので、まず手始めの勉強に持ってこいです!
Udacity : Intro to jQuery
https://www.udacity.com/course/progress#!/c-ud245
このコースでは「The Basics: the DOM, $ and Selectors」と「The Tricks: DOM Manipulation」の2つのレッスンがあり、自分は一つ目のレッスンを終えたところです。jQuery の文法やセレクターの使い方の説明でしたので30分くらいで終わったと思います。
moocs は多くの場合無料で講義を受けることができるので、まず手始めの勉強に持ってこいです!
Udacity : Intro to jQuery
https://www.udacity.com/course/progress#!/c-ud245
このコースでは「The Basics: the DOM, $ and Selectors」と「The Tricks: DOM Manipulation」の2つのレッスンがあり、自分は一つ目のレッスンを終えたところです。jQuery の文法やセレクターの使い方の説明でしたので30分くらいで終わったと思います。
2015年6月5日金曜日
Visual Studio で jQuery の IntelliSense(インテリセンス)を有効化
jQuery を用いた開発を行う際には硬派に「メモ帳」という選択肢もありますが、インテリセンスが使えないです。
普段からインテリセンスにお世話になっている身としては、ここはなんとは jQuery を使う時もその恩恵にあずかりたい!と思うのが人情。
そんな願いを叶えてくれるのが、Visual Studio と jQuery vsdoc の組み合わせです!
こんな感じで使えます。説明文は英語ですが、メソッドがリストアップされてるし十分!
利用方法は至って簡単です。
Visual Studio のソリューション エクスプローラの Web サイト名もしくはプロジェクト名上で右クリックし、表示されるコンテキストメニューから「NuGet パッケージの管理...」をクリックします。
続いて jQuery UI を検索して選択し、インストールします。
jQuery UI のインストールが完了すると Content フォルダと Scripts フォルダがコピーされます。Scripts フォルダ配下にある jquery-1.6.4.js 及び jquery-ui-1.11.4.js をそれぞれヘッダにインポートするとインテリセンスが使えるようになります。インテリセンスは Visual Studio と jquery-1.6.4-vsdoc.js が行ってくれますが、jquery-1.6.4-vsdoc.js 自体は jquery-1.6.4.js と同じフォルダにあれば OK です。
普段からインテリセンスにお世話になっている身としては、ここはなんとは jQuery を使う時もその恩恵にあずかりたい!と思うのが人情。
そんな願いを叶えてくれるのが、Visual Studio と jQuery vsdoc の組み合わせです!
こんな感じで使えます。説明文は英語ですが、メソッドがリストアップされてるし十分!
利用方法は至って簡単です。
Visual Studio のソリューション エクスプローラの Web サイト名もしくはプロジェクト名上で右クリックし、表示されるコンテキストメニューから「NuGet パッケージの管理...」をクリックします。
続いて jQuery UI を検索して選択し、インストールします。
jQuery UI のインストールが完了すると Content フォルダと Scripts フォルダがコピーされます。Scripts フォルダ配下にある jquery-1.6.4.js 及び jquery-ui-1.11.4.js をそれぞれヘッダにインポートするとインテリセンスが使えるようになります。インテリセンスは Visual Studio と jquery-1.6.4-vsdoc.js が行ってくれますが、jquery-1.6.4-vsdoc.js 自体は jquery-1.6.4.js と同じフォルダにあれば OK です。
登録:
投稿 (Atom)