DataTable 内に RowState が Unchange の行と Added の行が存在する場合に、DataTable.Select メソッドを実行すると、”アクセスするOriginalデータがありません”と言われてシステムエラーとなる。もちろん、Modified と Added が混在する場合も同様。(Unchange と Modified については未検証)
ただし、全行が同一の RowState である場合は、DataTable.Select メソッドは成功する。
DataGrid に追加された行に連番を振ろうとして DataTable.Select(hoge = Max(hoge)) としてたのだけど、結局、hoge 列の値を全て List に突っ込んでソート・・・なんだかなぁ。
2008年2月29日金曜日
2008年2月26日火曜日
Windows認証でのDB接続文字列
普段仕事場では接続文字列としてユーザーIDとパスワードを指定しているため、
"Data Source=DBServer;Initial Catlog=pubs;User ID=XXX;Password=hoge"
と記述している。
しかしセキリュティの観点からすると、Windows認証を用いてDBへ接続すべきで、
その場合の記述は以下の通り。
"Data Source=DBServer;Initial Catlog=pubs;Integrated Security=SSPI"「Integrated Security を SSPI または true に設定することで Windows 統合認証でアクセスすることができる。」のだそうで。
初めてやってみたけど、ちゃんと接続されると嬉しい^^
2008年2月23日土曜日
DataTable.Select メソッドでの集計関数の使い方
データテーブルからMAX値を取ろうとして以下のように書いたのだけれど、
DataTable dt = new DataTable()
DataRow[] rows = dt.Select("Max(ID)")
” Boolean 型はうんぬんかんぬん・・・”と言ったエラーが出て全然上手くいかない。
困り果てて @IT を見てみると、
DataRow[] rows = dt.Select("ID = Max(ID)")
なんだそうで。条件句を指定する場合と同じ記法でした。
これで全体の中でMax値を持った行コレクションが返ってきます。
DataColumn.Expression プロパティのページ見ても分からなかったよ・・・orz
DataTable dt = new DataTable()
DataRow[] rows = dt.Select("Max(ID)")
” Boolean 型はうんぬんかんぬん・・・”と言ったエラーが出て全然上手くいかない。
困り果てて @IT を見てみると、
DataRow[] rows = dt.Select("ID = Max(ID)")
なんだそうで。条件句を指定する場合と同じ記法でした。
これで全体の中でMax値を持った行コレクションが返ってきます。
DataColumn.Expression プロパティのページ見ても分からなかったよ・・・orz
2008年2月22日金曜日
WebServiceとして定義されているメソッドの引数の型について
自分で作成したクラスを WebService として定義されたメソッドの引数とした場合、実際にアプリケーションから呼び出そうとすると、 WebReferences 配下のフォルダ名が、その引数のネームスペースとして先頭についてしまう。これは VisualStudio が Reference.vb を自動生成した事による。回避策としては、 Reference.vb ファイルを手動で書き直すこと。
ex)
自作クラス:Nao.Hoge
WebServiceメソッド:GetName(Nao.Hoge obj)
WebReferences 配下のフォルダ名:Men
とした場合に、
Nao.Hoge obj = new Nao.Hoge()
GetName(obj)
とするとエラーとなってしまう。
Reference.vb 内で、 GetName(Men.Nao.Hoge obj) と定義されているため。
どうやら ArrayList 型を引数としても、Object 型に自動変換されるようで・・・。加えて、引数の型をスーパークラスとして、実際にはサブクラスを引き渡した場合も、型が不一致のためエラーとなってしまいます。
WebService にポリモーフィズムの概念は無いのかな???
ex)
自作クラス:Nao.Hoge
WebServiceメソッド:GetName(Nao.Hoge obj)
WebReferences 配下のフォルダ名:Men
とした場合に、
Nao.Hoge obj = new Nao.Hoge()
GetName(obj)
とするとエラーとなってしまう。
Reference.vb 内で、 GetName(Men.Nao.Hoge obj) と定義されているため。
どうやら ArrayList 型を引数としても、Object 型に自動変換されるようで・・・。加えて、引数の型をスーパークラスとして、実際にはサブクラスを引き渡した場合も、型が不一致のためエラーとなってしまいます。
WebService にポリモーフィズムの概念は無いのかな???
2008年2月21日木曜日
ノータッチデプロイメントでのアセンブリのダウンロード先
Gacutil.exeでダウンロードされたファイルを確認したのは覚えていたんだけど、グローバルアセンブリキャッシュには無い。じゃあ実際はどこにあるのかと言うと、アセンブリダウンロードキャッシュってとこに配置されるんだと。
(.NETアプリケーション自動更新技術の比較)
Gacutil.exeはグローバルアセンブリキャッシュのみを対象にしてると思ってたけど、/ldl オプションを付けて実行すると、ダウンロードされたファイルのキャッシュが表示されます。
(グローバル アセンブリ キャッシュ ツール)
(.NETアプリケーション自動更新技術の比較)
Gacutil.exeはグローバルアセンブリキャッシュのみを対象にしてると思ってたけど、/ldl オプションを付けて実行すると、ダウンロードされたファイルのキャッシュが表示されます。
(グローバル アセンブリ キャッシュ ツール)
登録:
投稿 (Atom)