閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)

 MS-Accessのデータ型のASP.NETのデータコントロールでの表記やOleDb接続でハンドリ
ングする際の表記は、「何だったけ?」といつも忘れてしまう。これら3者の表記比較
表はとても重宝する。
 一覧にまとめてあるページを見付けたのでリンクを張っておく。 10/11/13

↓MS-Accessと.NETとOleDbTypeのデータ型表記対比表
http://support.microsoft.com/kb/320435/ja

【代表例】
|~MS-Accessのデータ型|~.NET|~OleDbType|
|テキスト型|String|VarWChar|
|長整数型|Int32|Integer|
|整数型|Int16|SmallInt|
|オートナンバ型|Int32|Integer|
|日付/時刻型|DateTime|Date|
|通貨型|Decimal|Numeric|

【コード記述例】
・ASP.NETのデータコントロールのコード例
 <html xmlns="http://www.w3.org/1999/xhtml" >
 <head runat="server">
     <title>無題のページ</title>
 </head>
 <body>
     <form id="form1" runat="server">
     <div>
         AccessでのGridView編集の稼働確認 09/09/17<br />
         (「オプティミスティック同時実行制御」を設定)<br />
         &nbsp;<br />
         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
             DataKeyNames="ID" DataSourceID="AccessDataSource1" EmptyDataText="表示するデータ レコードがありません。"
             ForeColor="#333333" GridLines="None">
             <RowStyle BackColor="#E3EAEB" />
             <Columns>
                 <asp:CommandField ButtonType="Button" ShowEditButton="True" />
                 <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
                 <asp:BoundField DataField="名前" HeaderText="名前" SortExpression="名前" />
                 <asp:BoundField DataField="年齢" HeaderText="年齢" SortExpression="年齢" />
             </Columns>
             <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
             <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
             <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
             <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
             <EditRowStyle BackColor="#7C6F57" />
             <AlternatingRowStyle BackColor="White" />
         </asp:GridView>
         <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="App_Data\Access01.mdb"
             DeleteCommand="DELETE FROM [名簿] WHERE [ID] = ? AND (([名前] = ?) OR ([名前] IS NULL AND ? IS NULL)) AND (([年齢] = ?) OR ([年齢] IS NULL AND ? IS NULL))"
             InsertCommand="INSERT INTO [名簿] ([ID], [名前], [年齢]) VALUES (?, ?, ?)"
             SelectCommand="SELECT [ID], [名前], [年齢] FROM [名簿]"
             UpdateCommand="UPDATE [名簿] SET [名前] = ?, [年齢] = ? WHERE [ID] = ? AND (([名前] = ?) OR ([名前] IS NULL AND ? IS NULL)) AND (([年齢] = ?) OR ([年齢] IS NULL AND ? IS NULL))"
             ConflictDetection="CompareAllValues" OldValuesParameterFormatString="original_{0}">
             <DeleteParameters>
                 <asp:Parameter Name="original_ID" Type="Int32" />
                 <asp:Parameter Name="original_名前" Type="String" />
                 <asp:Parameter Name="original_年齢" Type="Int16" />
             </DeleteParameters>
             <InsertParameters>
                 <asp:Parameter Name="ID" Type="Int32" />
                 <asp:Parameter Name="名前" Type="String" />
                 <asp:Parameter Name="年齢" Type="Int16" />
             </InsertParameters>
             <UpdateParameters>
                 <asp:Parameter Name="名前" Type="String" />
                 <asp:Parameter Name="年齢" Type="Int16" />
                 <asp:Parameter Name="original_ID" Type="Int32" />
                 <asp:Parameter Name="original_名前" Type="String" />
                 <asp:Parameter Name="original_名前" Type="String" />
                 <asp:Parameter Name="original_年齢" Type="Int16" />
                 <asp:Parameter Name="original_年齢" Type="Int16" />
             </UpdateParameters>
         </asp:AccessDataSource>
     
     </div>
     </form>
 </body>
 </html>

OleDbハンドリング時のコード例
 'AccessDBにOleDbで接続
 Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\AccessDB.mdb")
     'OleDbでのパラメータ設定はPositional Parameter方式(Values(?, ?, ?))で設定
     Dim cmd As New OleDbCommand("Insert Into [得意先テーブル] ([社名], [担当者名], [電話]) Values(?, ?, ?)", con)
 
     cmd.Parameters.Add("@CompanyName", OleDbType.VarWChar, 40)
     cmd.Parameters("@CompanyName").Value = "フレンドリーソフト"
     cmd.Parameters.Add("@ContactName", OleDbType.VarWChar, 30)
     cmd.Parameters("@ContactName").Value = "葛西 秋雄"
     cmd.Parameters.Add("@Phone", OleDbType.VarWChar, 24)
     cmd.Parameters("@Phone").Value = "0480-99-9999"
     
     con.Open()
     'クエリの実行(INSERTクエリの場合は結果セットを返さないExecuteNonQuery)
     cmd.ExecuteNonQuery()
    
     '新規挿入したデータのIDを取得する方法
     cmd.CommandText = "Select @@Identity"
     Dim intCustomerID As Integer = cmd.ExecuteScalar()
     Label1.Text = String.Format("得意先ID <b>{0}</b> を追加しました.", intCustomerID.ToString())
 End Using
~
#comment_nospam
#vote(参考になった[0],ふつう[0],参考にならなかった[0])

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS