2007年11月アーカイブ

設定ファイルなどを拡張子がtxt, ini, datなどのファイルにしている場合、このファイルにアクセスされると ブラウザに内容が表示されてしまう。 それに対してアクセス制限をかけるには、web.configのhttpHandlers要素に追加すればよい。 以下はtxtファイルを制限する場合の記述。

<configuration>
  <
system.web>
    <
httpHandlers>
     <
add verb="*" path="*.txt" type="System.Web.HttpForbiddenHandler" />
    </
httpHandlers>
  </
system.web>
</
configuration>


ただしVS2005の開発環境で確認する場合はこれで問題ありませんが、 実際にWindows2003Serverにリリースした際は、これだけではtxtファイルは表示されてしまいます。
これの対処方法は、IISに設定を追加する必要があります。

ASP.NETではaspxファイルなどでエラーが発生した場合に、エラーページが表示されます。
データソースコントロールを用いてasp.vbファイルからデータベースに接続する方法です。
データソースで接続情報、SQLを設定して取得データを細かく処理したいときに使えます。
ただ、データソースコントロールをこのような使い方をするのが良いかは不明・・
接続ウィザードで設定する分、楽に作れますね。


SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataReader
Dim
myDataReader As System.Data.SqlClient.SqlDataReader = CType(SqlDataSource1. _
                 Select(DataSourceSelectArguments.Empty), System.Data.SqlClient.SqlDataReader)


While myDataReader.Read()
   
Me.TextBox1.Text = myDataReader.GetString(0)
    Exit While
End
While
myDataReader.Close()



コードからSELECTを発行してレコードを処理する方法です。ASP.NET2.0ではDbDataReaderを使用。

'接続情報取得
Dim constr As ConnectionStringSettings = ConfigurationManager.ConnectionStrings("MyDB")
Dim myProvider As DbProviderFactory = DbProviderFactories. _
                                          GetFactory(constr.ProviderName)

Dim
myConnection As DbConnection = myProvider.CreateConnection()

myConnection.ConnectionString = constr.ConnectionString

myConnection.Open()


'DbCommand生成
Dim myCommand As DbCommand = myProvider.CreateCommand()
'SQL設定
myCommand.CommandText = "SELECT * FROM [test]"
'データソースへ接続
myCommand.Connection = myConnection
'DbDataReader生成
Dim myReader As DbDataReader = myCommand.ExecuteReader()


'先頭レコードのみ取得してみる
While myReader.Read()
   
TextBox1.Text = myReader.GetString(1)
    Exit While
End
While


'Close処理
myReader.Close()
myConnection.Close()



DbDataReaderクラス http://msdn2.microsoft.com/ja-jp/library/system.data.common.dbdatareader(VS.80).aspx
web.config内にデータベースの接続情報を格納している場合、ConfigurationManager クラスを使用することで、データの取得を行えます。

<appSettings/>
  <
connectionStrings>
    <
add name="MyDB" connectionString="xxx" />
  </
connectionStrings>


'web.configの情報取得

Dim constr As ConnectionStringSettings = ConfigurationManager.ConnectionStrings("MyDB")


Accessへのデータベース接続をaspx.vbファイルから行うには、以下のような感じになります。

'Accessへのデータベース接続
Dim strProviderName As String
Dim strConnectionString As String

strProviderName = "System.Data.OleDb"

strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource= _
                      |DataDirectory|\test.mdb;Persist Security Info=True"

Dim myProvider As DbProviderFactory = DbProviderFactories.GetFactory(strProviderName)
Dim myConnection As DbConnection = myProvider.CreateConnection()

myConnection.ConnectionString = strConnectionString
myConnection.Open()

 


【東京会場】
▼日付 2007年12月8日(土)
▼会場 ベルサール西新宿 1Fホール
http://www.sumitomo-rd.co.jp/building/kaigishitsu/bs_nishi-shinjuku.html
▼会費 無料(VSUG 会員登録が必要となります)


vsugday_07w.gif
ASP.NETは、いろいろと簡単にできるものがたくさんありますが、細かいことをやるとなるとどうもわからない。。ASPならがりがり書けばよいところですが。

DropDownListに「選択してください」などの項目を追加するには、AppendDataBoundItemsプロパティをTrueにしてaspxファイルのソースに以下のように追加します。

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2"
DataTextField="Contents" DataValueField="ClassID" AppendDataBoundItems="True"
AutoPostBack="True">
<asp:ListItem Text="選択してください" Value="000" Selected="True" />

</asp:DropDownList>

参考:ListControl.AppendDataBoundItems プロパティ(MSDN)

久々にブログをMTで作ろうしたところバージョンがMT4になってます。。
進化してるんですねぇ。
で、Xserverへのインストール方法は、以下のサイトを参考に問題なかったです。
http://www.tbod.jp/movabletype_33_xserver.html

ただ、最後のユーザー情報を入力した後にインストールを続行ボタンをクリックすると
「データベースの初期化中」で止まってしまいました。
・・・
結局、アップロードしたファイルのパーミッションを700に変更した際、すべてのフォルダを700にしてしまったためでした。。
755にしたら無事インストールが完了。

あとは、デザインを変えてみたりしましたが、結構便利かも。。



このブログ記事は、Movable Type 4のインストール完了時に、システムによって自動的に作成されたブログ記事です。 新しくなったMT4の管理画面で、早速ブログを更新してみましょう。

このアーカイブについて

このページには、2007年11月に書かれたブログ記事が新しい順に公開されています。

次のアーカイブは2007年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01