GridViewで一覧表示 ~ObjectDataSource(TypedDataSet)~ を修正して検索機能を追加します。
■型付DataSetにメソッドを追加します。
CompanyDataSetデザイナのCompanyTableAdapterの右クリックメニューより「クエリーの追加」を選択します。
「SQLステートメントを使用する」を選択します。
「複数行を返すSELECT」を選択します。
「クエリビルダ」ボタンをクリックします。
条件式を設定します。
CompanyIDフィールドの並べ替えの種類を「昇順」
CompanyNameフィールドのフィルタを「Like '%' + @CompanyName + '%'」
CompanyKanaフィールドのフィルタを「Like '%' + @CompanyKana + '%'」
「次へ」ボタンをクリックします。
メソッド名を入力します。
完了します。
■検索条件指定用のコントロールを配置します。
■ObjectDataSorceを修正します。
ObjectDataSourceのスマートタグより「データソースの構成」をクリックします。
ビジネスオブジェクトに「CompanyDataSetTableAdapters.CompanyTableAdapter」を選択します。
SELECTメソッドに先ほど作成した「GetDataByNameAndKana」メソッドを選択します。
(選択に表示されない場合は、リビルドしてください。)
パラメータの定義を行います。
パラメータ[companyName]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyName]、DefaultValueに「%」を設定します。
同様に、パラメータ[companyKana]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyKana]、DefaultValueに「%」を設定します。
■空データ時のメッセージを作成します。
GridViewのスマートタグより「テンプレートの編集」を選択します。
スマートタグの表示ボックスで「EmptyDataTemplate」が選択されていることを確認します。
EmptyDataTemplateボックスにLabelコントロールを配置し
Textプロパティに「該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。」を設定します。
ForeColorプロパティをredに設定します。
スマートタグより「テンプレート編集の終了」をクリックします。
■実行して確認します。
ASP.NET GridViewで検索機能を追加~ObjectDataSource DataSet~
GridViewで一覧表示 ~ObjectDataSource(DataSet)~ を修正して検索機能を追加します。
■データアクセスクラスを修正します。
「Customer.vb」の「GetCompanyData」メソッドを以下のように修正します。
■検索条件指定用のコントロールを配置します。
■ObjectDataSorceを修正します。
ObjectDataSourceのスマートタグより「データソースの構成」をクリックします。
ビジネスオブジェクトに先ほど作成したCompanyクラスを選択します。
SELECTメソッドにCompanyクラスのGetCompanyDataメソッドを選択します。
パラメータの定義を行います。
パラメータ[companyName]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyName]、DefaultValueに「%」を設定します。
同様に、パラメータ[companyKana]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyKana]、DefaultValueに「%」を設定します。
■空データ時のメッセージを作成します。
GridViewのスマートタグより「テンプレートの編集」を選択します。
スマートタグの表示ボックスで「EmptyDataTemplate」が選択されていることを確認します。
EmptyDataTemplateボックスにLabelコントロールを配置し
Textプロパティに「該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。」を設定します。
ForeColorプロパティをredに設定します。
スマートタグより「テンプレート編集の終了」をクリックします。
■実行して確認します。
■データアクセスクラスを修正します。
「Customer.vb」の「GetCompanyData」メソッドを以下のように修正します。
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.Common
Imports System.ComponentModel
''' <summary>
''' 会社クラスです。
''' </summary>
''' <remarks></remarks>
Public Class Company
''' <summary>
''' 会社データを取得します。
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
<DataObjectMethod(DataObjectMethodType.Select, True)> _
Public Shared Function GetCompanyData(ByVal companyName As String, ByVal companyKana As String) As DataSet
'App.configより接続文字列を取得します。
Dim setting As ConnectionStringSettings
setting = ConfigurationManager.ConnectionStrings("ConnectionString")
'ファクトリーオブジェクトを作成します。
Dim factory As DbProviderFactory
factory = DbProviderFactories.GetFactory(setting.ProviderName)
'コネクションオブジェクトを作成します。
Dim cnn As DbConnection
cnn = factory.CreateConnection
cnn.ConnectionString = setting.ConnectionString
'SQLを作成します。
Dim sql As New System.Text.StringBuilder
sql.Append("SELECT [CompanyID],[CompanyName],[CompanyKana]")
sql.Append(" FROM [tblCompany]")
sql.Append(" WHERE")
sql.Append(" ([CompanyName] LIKE '%' + @CompanyName + '%')")
sql.Append(" AND")
sql.Append(" ([CompanyKana] LIKE '%' + @CompanyKana + '%')")
'コマンドオブジェクトを作成します。
Dim cmd As DbCommand
cmd = factory.CreateCommand
cmd.Connection = cnn
cmd.CommandText = sql.ToString
'パラメータを設定します。
'--会社名
Dim prms(1) As DbParameter
prms(0) = factory.CreateParameter
prms(0).ParameterName = "@CompanyName"
prms(0).Value = companyName
'--会社名カナ
prms(1) = factory.CreateParameter
prms(1).ParameterName = "@CompanyKana"
prms(1).Value = companyKana
'--コマンドに追加します。
cmd.Parameters.AddRange(prms)
'アダプターオブジェクトを作成します。
Dim adp As DbDataAdapter
adp = factory.CreateDataAdapter
adp.SelectCommand = cmd
'データテーブルを作成します。
Dim ds As New DataSet
adp.Fill(ds)
Return ds
End Function
End Class
Imports System.Data
Imports System.Data.Common
Imports System.ComponentModel
''' <summary>
''' 会社クラスです。
''' </summary>
''' <remarks></remarks>
Public Class Company
''' <summary>
''' 会社データを取得します。
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
<DataObjectMethod(DataObjectMethodType.Select, True)> _
Public Shared Function GetCompanyData(ByVal companyName As String, ByVal companyKana As String) As DataSet
'App.configより接続文字列を取得します。
Dim setting As ConnectionStringSettings
setting = ConfigurationManager.ConnectionStrings("ConnectionString")
'ファクトリーオブジェクトを作成します。
Dim factory As DbProviderFactory
factory = DbProviderFactories.GetFactory(setting.ProviderName)
'コネクションオブジェクトを作成します。
Dim cnn As DbConnection
cnn = factory.CreateConnection
cnn.ConnectionString = setting.ConnectionString
'SQLを作成します。
Dim sql As New System.Text.StringBuilder
sql.Append("SELECT [CompanyID],[CompanyName],[CompanyKana]")
sql.Append(" FROM [tblCompany]")
sql.Append(" WHERE")
sql.Append(" ([CompanyName] LIKE '%' + @CompanyName + '%')")
sql.Append(" AND")
sql.Append(" ([CompanyKana] LIKE '%' + @CompanyKana + '%')")
'コマンドオブジェクトを作成します。
Dim cmd As DbCommand
cmd = factory.CreateCommand
cmd.Connection = cnn
cmd.CommandText = sql.ToString
'パラメータを設定します。
'--会社名
Dim prms(1) As DbParameter
prms(0) = factory.CreateParameter
prms(0).ParameterName = "@CompanyName"
prms(0).Value = companyName
'--会社名カナ
prms(1) = factory.CreateParameter
prms(1).ParameterName = "@CompanyKana"
prms(1).Value = companyKana
'--コマンドに追加します。
cmd.Parameters.AddRange(prms)
'アダプターオブジェクトを作成します。
Dim adp As DbDataAdapter
adp = factory.CreateDataAdapter
adp.SelectCommand = cmd
'データテーブルを作成します。
Dim ds As New DataSet
adp.Fill(ds)
Return ds
End Function
End Class
■検索条件指定用のコントロールを配置します。
■ObjectDataSorceを修正します。
ObjectDataSourceのスマートタグより「データソースの構成」をクリックします。
ビジネスオブジェクトに先ほど作成したCompanyクラスを選択します。
SELECTメソッドにCompanyクラスのGetCompanyDataメソッドを選択します。
パラメータの定義を行います。
パラメータ[companyName]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyName]、DefaultValueに「%」を設定します。
同様に、パラメータ[companyKana]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyKana]、DefaultValueに「%」を設定します。
■空データ時のメッセージを作成します。
GridViewのスマートタグより「テンプレートの編集」を選択します。
スマートタグの表示ボックスで「EmptyDataTemplate」が選択されていることを確認します。
EmptyDataTemplateボックスにLabelコントロールを配置し
Textプロパティに「該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。」を設定します。
ForeColorプロパティをredに設定します。
スマートタグより「テンプレート編集の終了」をクリックします。
■実行して確認します。
ASP.NET GridViewで検索機能を追加~ObjectDataSource DataReader~
GridViewで一覧表示 ~ObjectDataSource(DataReader)~ を修正して検索機能を追加します。
■データアクセスクラスを修正します。
「Customer.vb」の「GetCompanyData」メソッドを以下のように修正します。
■検索条件指定用のコントロールを配置します。
■ObjectDataSorceを修正します。
ObjectDataSourceのスマートタグより「データソースの構成」をクリックします。
ビジネスオブジェクトに先ほど作成したCompanyクラスを選択します。
SELECTメソッドにCompanyクラスのGetCompanyDataメソッドを選択します。
パラメータの定義を行います。
パラメータ[companyName]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyName]、DefaultValueに「%」を設定します。
同様に、パラメータ[companyKana]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyKana]、DefaultValueに「%」を設定します。
■空データ時のメッセージを作成します。
GridViewのスマートタグより「テンプレートの編集」を選択します。
スマートタグの表示ボックスで「EmptyDataTemplate」が選択されていることを確認します。
EmptyDataTemplateボックスにLabelコントロールを配置し
Textプロパティに「該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。」を設定します。
ForeColorプロパティをredに設定します。
スマートタグより「テンプレート編集の終了」をクリックします。
■実行して確認します。
■データアクセスクラスを修正します。
「Customer.vb」の「GetCompanyData」メソッドを以下のように修正します。
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.Common
Imports System.ComponentModel
''' <summary>
''' 会社クラスです。
''' </summary>
''' <remarks></remarks>
Public Class Company
''' <summary>
''' 会社データを取得します。
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
<DataObjectMethod(DataObjectMethodType.Select, True)> _
Public Shared Function GetCompanyData(ByVal companyName As String, ByVal companyKana As String) As DbDataReader
'App.configより接続文字列を取得します。
Dim setting As ConnectionStringSettings
setting = ConfigurationManager.ConnectionStrings("ConnectionString")
'ファクトリーオブジェクトを作成します。
Dim factory As DbProviderFactory
factory = DbProviderFactories.GetFactory(setting.ProviderName)
'コネクションオブジェクトを作成します。
Dim cnn As DbConnection
cnn = factory.CreateConnection
cnn.ConnectionString = setting.ConnectionString
'SQLを作成します。
Dim sql As New System.Text.StringBuilder
sql.Append("SELECT [CompanyID],[CompanyName],[CompanyKana]")
sql.Append(" FROM [tblCompany]")
sql.Append(" WHERE")
sql.Append(" ([CompanyName] LIKE '%' + @CompanyName + '%')")
sql.Append(" AND")
sql.Append(" ([CompanyKana] LIKE '%' + @CompanyKana + '%')")
'コマンドオブジェクトを作成します。
Dim cmd As DbCommand
cmd = factory.CreateCommand
cmd.Connection = cnn
cmd.CommandText = sql.ToString
'パラメータを設定します。
'--会社名
Dim prms(1) As DbParameter
prms(0) = factory.CreateParameter
prms(0).ParameterName = "@CompanyName"
prms(0).Value = companyName
'--会社名カナ
prms(1) = factory.CreateParameter
prms(1).ParameterName = "@CompanyKana"
prms(1).Value = companyKana
'--コマンドに追加します。
cmd.Parameters.AddRange(prms)
'コネクションをオープンします。
cnn.Open()
'DbDataReaderを返します。
'DbDataReaderオブジェクトが破棄されたタイミングで、それに関連付いたDbConnectionオブジェクトも自動的に破棄されます。
'例外発生時もcnn.Closeする必要はありません。
Return cmd.ExecuteReader(CommandBehavior.CloseConnection)
End Function
End Class
Imports System.Data
Imports System.Data.Common
Imports System.ComponentModel
''' <summary>
''' 会社クラスです。
''' </summary>
''' <remarks></remarks>
Public Class Company
''' <summary>
''' 会社データを取得します。
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
<DataObjectMethod(DataObjectMethodType.Select, True)> _
Public Shared Function GetCompanyData(ByVal companyName As String, ByVal companyKana As String) As DbDataReader
'App.configより接続文字列を取得します。
Dim setting As ConnectionStringSettings
setting = ConfigurationManager.ConnectionStrings("ConnectionString")
'ファクトリーオブジェクトを作成します。
Dim factory As DbProviderFactory
factory = DbProviderFactories.GetFactory(setting.ProviderName)
'コネクションオブジェクトを作成します。
Dim cnn As DbConnection
cnn = factory.CreateConnection
cnn.ConnectionString = setting.ConnectionString
'SQLを作成します。
Dim sql As New System.Text.StringBuilder
sql.Append("SELECT [CompanyID],[CompanyName],[CompanyKana]")
sql.Append(" FROM [tblCompany]")
sql.Append(" WHERE")
sql.Append(" ([CompanyName] LIKE '%' + @CompanyName + '%')")
sql.Append(" AND")
sql.Append(" ([CompanyKana] LIKE '%' + @CompanyKana + '%')")
'コマンドオブジェクトを作成します。
Dim cmd As DbCommand
cmd = factory.CreateCommand
cmd.Connection = cnn
cmd.CommandText = sql.ToString
'パラメータを設定します。
'--会社名
Dim prms(1) As DbParameter
prms(0) = factory.CreateParameter
prms(0).ParameterName = "@CompanyName"
prms(0).Value = companyName
'--会社名カナ
prms(1) = factory.CreateParameter
prms(1).ParameterName = "@CompanyKana"
prms(1).Value = companyKana
'--コマンドに追加します。
cmd.Parameters.AddRange(prms)
'コネクションをオープンします。
cnn.Open()
'DbDataReaderを返します。
'DbDataReaderオブジェクトが破棄されたタイミングで、それに関連付いたDbConnectionオブジェクトも自動的に破棄されます。
'例外発生時もcnn.Closeする必要はありません。
Return cmd.ExecuteReader(CommandBehavior.CloseConnection)
End Function
End Class
■検索条件指定用のコントロールを配置します。
■ObjectDataSorceを修正します。
ObjectDataSourceのスマートタグより「データソースの構成」をクリックします。
ビジネスオブジェクトに先ほど作成したCompanyクラスを選択します。
SELECTメソッドにCompanyクラスのGetCompanyDataメソッドを選択します。
パラメータの定義を行います。
パラメータ[companyName]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyName]、DefaultValueに「%」を設定します。
同様に、パラメータ[companyKana]のパラメータソースに[Control]を選択し、ControlIDに[txtCompanyKana]、DefaultValueに「%」を設定します。
■空データ時のメッセージを作成します。
GridViewのスマートタグより「テンプレートの編集」を選択します。
スマートタグの表示ボックスで「EmptyDataTemplate」が選択されていることを確認します。
EmptyDataTemplateボックスにLabelコントロールを配置し
Textプロパティに「該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。」を設定します。
ForeColorプロパティをredに設定します。
スマートタグより「テンプレート編集の終了」をクリックします。
■実行して確認します。
ASP.NET GridViewで検索機能を追加~SqlDataSource~
GridViewで一覧表示 ~SqlDataSource~ を修正して検索機能を追加します。
■検索条件指定用のコントロールを配置します。
■SqlDataSorceを修正します。
SqlDataSourceのスマートタグより「データソースの構成」をクリックします。
次へボタンをクリックします。
WHEREボタンをクリックします。
顧客名による抽出条件を指定します。
顧客名カナによる抽出条件を指定します。
並べ替え順序を指定します。
■空データ時のメッセージを作成します。
GridViewのスマートタグより「テンプレートの編集」を選択します。
スマートタグの表示ボックスで「EmptyDataTemplate」が選択されていることを確認します。
EmptyDataTemplateボックスにLabelコントロールを配置し
Textプロパティに「該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。」を設定します。
ForeColorプロパティをredに設定します。
スマートタグより「テンプレート編集の終了」をクリックします。
(表示ボックスで選択できる「PageTemplate」はページング機能を利用せずに独自のインターフェイスを定義する場合に使用します。)
■実行して確認します。
■検索条件指定用のコントロールを配置します。
■SqlDataSorceを修正します。
SqlDataSourceのスマートタグより「データソースの構成」をクリックします。
次へボタンをクリックします。
WHEREボタンをクリックします。
顧客名による抽出条件を指定します。
顧客名カナによる抽出条件を指定します。
並べ替え順序を指定します。
■空データ時のメッセージを作成します。
GridViewのスマートタグより「テンプレートの編集」を選択します。
スマートタグの表示ボックスで「EmptyDataTemplate」が選択されていることを確認します。
EmptyDataTemplateボックスにLabelコントロールを配置し
Textプロパティに「該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。」を設定します。
ForeColorプロパティをredに設定します。
スマートタグより「テンプレート編集の終了」をクリックします。
(表示ボックスで選択できる「PageTemplate」はページング機能を利用せずに独自のインターフェイスを定義する場合に使用します。)
■実行して確認します。
ASP.NET GridViewで一覧表示 ~ObjectDataSource(TypedDataSet)~
GridViewで一覧表示 ~ObjectDataSource(DataReader)~ のObjectDataSourceのデータソースを型付DataSetにしてみます。
■型付DataSetを用意します。
新しい項目の追加より「データセット」をApp_Codeフォルダに追加します。
サーバーエクスプローラからCompanyテーブルをドラッグ&ドロップします。
(ビジネスオブジェクトの候補にTableAdapterが表示されないので一度ビルドしておきます。)
■ObjectDataSourceのデータソースを変更します。
ObjectDataSourceのスマートタグより「データソースの構成」をクリックします。
ビジネスオブジェクトに先ほど作成したデータセットのTableAdapterを選択します。
Selectメソッドを選択します。
■型付DataSetを用意します。
新しい項目の追加より「データセット」をApp_Codeフォルダに追加します。
サーバーエクスプローラからCompanyテーブルをドラッグ&ドロップします。
(ビジネスオブジェクトの候補にTableAdapterが表示されないので一度ビルドしておきます。)
■ObjectDataSourceのデータソースを変更します。
ObjectDataSourceのスマートタグより「データソースの構成」をクリックします。
ビジネスオブジェクトに先ほど作成したデータセットのTableAdapterを選択します。
Selectメソッドを選択します。
登録:
投稿 (Atom)
-
DataTableから重複を除くには と DataTableの集約計算を行う(Compute) を利用して、DataTableをグループ化し集計を行います。 以下のようなデータが入ったDataTableから、Field1とField2で重複を取り除き集計をおこないます。...
-
前回「 PLSQL SELECTの結果を取得する ~取得結果が1行の場合~ 」に続き 今回はSELECTの結果が複数行の場合です。 SELECTの結果が複数行の場合はカーソルを使用します。 カーソルとは SELECTの結果セットに対して、1行ずつデータを取り出し、順次...
-
datatableの集約計算を行うにはDataTable.Compute メソッドを使用します。 Dim As Object '最大値を求める value = datatable.Compute("Max(集計列名)", Nothing) ...