閲覧総計:&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 /> <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],参考にならなかった[9])