ASP.NETで検索結果の上位50位を表示する方法

このQ&Aのポイント
  • ASP.NETで開発を初めて2,3日目の方が検索結果の上位50位を表示する方法について教えてください。
  • 現在はSQL文の結果を全件表示しているが、検索結果の件数が50件以上の場合は最初の50件だけ表示し、ページングを実装したいです。
  • 私はASP.NETで検索条件を入力し、その条件に一致するデータを表示する機能を開発しています。全件表示では表示が遅くなる可能性があるため、検索結果の件数を取得し、50件以上の場合は最初の50件だけ表示する方法を教えてください。
回答を見る
  • ベストアンサー

ASP.NETで検索結果の上位50位を表示するには?

ASP.NETで開発を初めて2,3日目です。      検索条件を入力して   結果を表示させると言う事を   やろうとしてます。   初期画面(検索条件の入力) ↓ (パラメタ渡し)   検索結果 検索条件を入れないと、全件表示になるので   表示が遅くなる、固まるなどの恐れがあるので   あらかじめ検索結果の件数を取得して   50件以上なら最初の50件だけ表示して   後はページングを言う事をやろうと思ってます。   どうゆう記述をすれば出来るでしょうか? 現在はSQL文の結果を全件表示になってます。 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim MyConnString As String = "Data Source=Oracle_server;user ID=スキーマ;PASSWORD=パスワード;" Dim cn As New OracleConnection(MyConnString) cn.Open() DIM SQL文 SQL文 ="select * from 対象TABLE WHERE 項目名 = '" & 検索条件 & "' order by " & 検索条件 Dim cmd As New OracleCommand(SQL文, cn) Dim DR As OracleDataReader = cmd.ExecuteReader() DataGrid1.DataSource = DR DataGrid1.DataBind() End Sub 

質問者が選んだベストアンサー

  • ベストアンサー
  • mo_gu
  • ベストアンサー率51% (56/109)
回答No.1

DataGridでページングするというのでいいでしょうか? Microsoft ASP.NET クイック スタート チュートリアル にサンプルがありますので一度ご覧ください。

参考URL:
http://ja.gotdotnet.com/quickstart/aspplus/
COS_BUSTER
質問者

補足

ページングが出来れば、どんな方法でも構いません。 出来たらレスポンスのいい方法がいいですね。

関連するQ&A

  • ASP.NET(VB.NET)でADO.NETを使ってAccessデータベースに接続する方法(長文)

    ASP.NETでADO.NETを使ってAccessデータベースに接続し、table2という名前のテーブルのidをテキストボックスに入力し、ボタンを押すとデータグリッドでそのidのデータが表示されるアプリケーションを作りました。が、自分で書いていても意味がわかりません。手元にあるのはASP.NETでSQLServerに接続する方法について解説してある書籍と、Accessに接続するもののWindowsアプリケーションからの接続(しかも表示させる物が違う)について解説してある書籍のみです。これらを組み合わせてなんとか表示させるまではできたのですが、全く意味がわかりません。どなたかご解説いただけないでしょうか? また、ASP.NET(VB.NET)でAccessデータベースと接続するアプリケーションについて触れてあるような書籍をご存知の方がいらっしゃいましたら、是非教えていただけないでしょうか?よろしくお願いいたします。 以下はボタンクリックされたときのイベントハンドラです。コードの先頭でImports System.Data.OleDbしてあります。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim dt As Integer Dim cn As New OleDbConnection("provider=microsoft.jet.oledb.4.0; Data Source=C:\nabe\採用\新人研修用\.NETコース\DB\kensyu2.mdb;") cn.Open() Dim cmd As New OleDbCommand("select * from table2 where id =?", cn) cmd.Parameters.Clear() cmd.Parameters.Add("param1", TextBox1.Text) dt = CType(cmd.ExecuteScalar(), Integer) Dim dr As OleDbDataReader = cmd.ExecuteReader() DataGrid1.DataSource = dr DataGrid1.DataBind() dr.Close() cn.Close() End Sub

  • SQLServerデータをDataGridに表示時にエラーが発生

    SQLServerデータをDataGridに表示時にエラーが発生 visual Studio2008を使用し、SQLServerから条件を指定しそれをDataGridに一覧表示するvbを組んでいますが、エラーが解消しなく困っております。対応方法について教えてください。 【状況】 1 Dim St As String 2 Dim Cn As New System.Data.SqlClient.SqlConnection 3 Dim SQL As System.Data.SqlClient.SqlCommand 4 Dim ServerName As String = "Server名"  5 Dim UserID As String = "id" 6 Dim Password As String = "×××" 7 Dim DatabaseName As String = "Dbname" 8 Dim Adapter As New SqlClient.SqlDataAdapter(SQL, Cn) 9 Dim table As New DataTable 10 St = "Server=" & ServerName & ";" 11 St &= "User ID=" & UserID & ";" 12 St &= "Password=" & Password & ";" 13 St &= "Initial Catalog=" & DatabaseName 14 Cn.Open() 15 Cn.ConnectionString = St 16 SQL = Cn.CreateCommand 17 SQL.CommandText = ("SELECT * FROM CUSTOMER_M WHERE CUSTOMER_NAME LIKE " & "'%' & TextBoxName.Text & '%'") 18 Adapter.Fill(table) 19 DataGrid1.DataSource = table 20 Cn.Close() 21 SQL.Dispose() 22 Cn.Dispose() 8行目の「Adapter」がエラーになり、オーバーロードの解決に失敗しましたとメッセージが出ています。8行目の(SQl、Cn)を省くとコンパイルエラーはなくなりますが、14行目でエラーになります。 宜しくお願いします。

  • CMD.Executeの結果をメッセージボックスで表示したい

    Public Sub SQLActionCmd()     Dim CN As ADODB.Connection     Dim CMD As ADODB.Command     Dim MYSQL As String     '接続     Set CN = CurrentProject.Connection     '更新     MYSQL = "SELECT * FROM 名簿 WEHRE 性別 = "男" ;"     Set CMD = New ADODB.Command     CMD.ActiveConnection = CN     CMD.CommandText = MYSQL     CMD.Execute    '終了     Set CMD = Nothing     RS.Close: Set RS = Nothing     CN.Close: Set CN = Nothing    End Sub と言う感じで実際にはAccessのフォームのボタンをクリックしたタイミングでコードをかいているのですが、このCMD.EXECUTEを実行した結果、テーブルに該当データがなければない旨のメッセージボックスを出したいのです。 そういうことは可能でしょうか?

  • レコードの削除

    VB6.0 ACCESSで開発しています。 t_nyukoテーブルのデータを全て削除するのは下記のように 出来たのですが dataGridに表示されているものを1つ選択し 選択されたものだけ削除したいのですがどうすればいいのでしょうか? よろしくお願いします。 Private Sub Command1_Click() Dim cn As New ADODB.Connection Dim cmd As ADODB.Command Dim cat As New ADODB.Command Dim strSQL As String   Set cn = New ADODB.Connection cn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\temp\db2.mdb" cn.Open cat.ActiveConnection = cn strSQL = "DELETE FROM t_nyuko " Set cmd = New ADODB.Command cmd.ActiveConnection = cn cmd.CommandText = strSQL cmd.Execute cn.Close Set cmd = Nothing Set cn = Nothing Set cat = Nothing End Sub

  • ASP.NET DataGridのハイパーリンク

    以下のようにASP.NETにて、DataGridへデータをセットし表示したのですが、さらにヘッダーの項目名(名前、年齢)をハイパーリンクにし、クリックして別の詳細ページへ飛ぶなどの動作をさせたいと考えています。 いろいろ調べましたが、記述方法がわかりません。 どなたかアドバイスお願いします。 ---------------------------------------------------- Private Sub Page_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) ' DataGridへバインドする If Not Me.IsPostBack Then ' 独自のDataAdapterを作成する Dim da As New SqlDataAdapter( _ "SELECT fullname as 名前, age as 年齢 FROM person", _ Me.SqlConnection1) Dim ds As New DataSet ' データ検索 da.Fill(ds) ' DataGridへバインド Me.DataView1 = New DataView(ds.Tables(0)) Me.DataBind() End If End Sub

  • VB.NET2005からoracle92へ接続するには?

    IDとパスワードを入力し、オラクルのDBにあるIDとパスワードだったら次の画面を開くというプログラムを作りたいです。 オラクルへの接続がうまく行ってないようで画面が固まってしまいます。 プログラムの不具合を教えていただけないでしょうか? よろしくお願いします。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As New OleDb.OleDbConnection() Dim cmd As New OleDb.OleDbCommand() Dim rs As OleDb.OleDbDataReader cn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=*;User ID=*;Password=*;" cn.Open() '←ここで、エラーになります。 cmd = cn.CreateCommand() cmd.CommandText = "Select ID from abc" rs = cmd.ExecuteReader() While rs.Read() If TextBox1.Text = cmd.CommandText Then MessageBox.Show("パスワードを受付けました。") Dim frm2 As New Form2 frm2.Show() TextBox1.Clear() TextBox2.Clear() Else MessageBox.Show("パスワードが違います。") TextBox1.Text = "" TextBox1.Focus() TextBox1.Clear() TextBox2.Clear() End if     End While cn.Close() rs.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class

  • ストアドプロシージャの実行について

    asp.net から sqlserver のストアドプロシージャを実行させる勉強をしています。 作成されているはずのストアドプロシージャを実行できずに困っています。 webformにテキストボックス、ボタン、データグリッドを貼り付け、ストアドプロシージャを作成し下記のプログラムを実行させるのですが上手くいきません。 (テキストボックスに任意で入力された数値のデータをボタンを押すと表示するものです) <エラー内容>→ ストアド プロシージャ 'proc1' が見つかりませんでした Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As New SqlConnection Dim cmd As New SqlCommand cn.ConnectionString = "接続文字列" cmd.Connection = cn cmd.CommandText = "proc1" cmd.CommandType = System.Data.CommandType.StoredProcedure Dim p1 As SqlParameter = cmd.Parameters.Add("@param1", System.Data.SqlDbType.Int) p1.Value = TextBox1.Text cn.Open() Dim dr As SqlDataReader = cmd.ExecuteReader DataGrid2.DataSource = dr DataGrid2.DataBind() dr.Close() cn.Close() end sub ストアドproc1(場所:Northwind)の内容↓ CREATE procedure proc1 @param1 int as select * from products where categoryID=@param1 どなたか原因のわかる方がいれば、宜しくお願いします。

  • VB.NET2005からoracle92へ接続する方法。

    IDとパスワードを入力し、オラクルのDBにあるIDとパスワードだったら次の画面を開くというプログラムを作りたいです。 オラクルへの接続がうまく行ってないようで画面が固まってしまいます。 プログラムの不具合を教えていただけないでしょうか? よろしくお願いします。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As New OleDb.OleDbConnection() Dim cmd As New OleDb.OleDbCommand() Dim rs As OleDb.OleDbDataReader cn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=*;User ID=*;Password=*;" cn.Open() '←ここで、エラーになります。 cmd = cn.CreateCommand() cmd.CommandText = "Select ID from abc" rs = cmd.ExecuteReader() While rs.Read() If TextBox1.Text = cmd.CommandText Then MessageBox.Show("パスワードを受付けました。") Dim frm2 As New Form2 frm2.Show() TextBox1.Clear() TextBox2.Clear() Else MessageBox.Show("パスワードが違います。") TextBox1.Text = "" TextBox1.Focus() TextBox1.Clear() TextBox2.Clear() End if     End While cn.Close() rs.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class

  • ASP.NETでIPアドレスログイン管理を教えてください

    こんばんわ。 現在、クライアントのIPアドレスを取得してSQLServerテーブルでログイン管理をするWebを作成したいと思っております。 ずっと調べていたのですが分からず、実はまだASP.NET自体あまり理解できておりません。書籍などで勉強してから投稿しろ!と思われるかもしれませんが時間がなく困っています。 どうかご教示を宜しくお願い致します。 わかる範囲で.vbにコードを書いてみましたがIPアドレスを取得してSQL Serverに接続後にIF文でエラーメッセージとメインページ表示を分岐したいのですが分らないのです。。。 Partial Class INDEX Inherits System.Web.UI.Page Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load 'ページを初期化するユーザーコードをここに挿入します。 If Not IsPostBack Then '---------IPアドレス取得--------------- Dim strHost As String Dim ip As System.Net.IPHostEntry Dim ipAddr As System.Net.IPAddress 'ホスト名を取得 strHost = System.Net.Dns.GetHostName() 'IPリストを取得 ip = System.Net.Dns.GetHostByName(strHost) 'IPリストの最初を取得 ipAddr = ip.AddressList(0) '---------SQL接続--------------- Dim cn As SqlConnection = New SqlConnection("Server=servername;database=data;UID=id;PWD=pass") Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM IPAdd WHERE IP='" & ipAddr & "' AND Authority1='True'") cn.Open() Dim reader As SqlDataReader = cmd.ExecuteReader() DemoGrid.DataSource = reader DataBind() reader.Close() cn.Close() End If End Sub End Class

  • 検索絞り込み方法について

    またまた行き詰まってお世話になります。 Access2000+VB.Net2003環境です。 データベースの中のデータを条件を指定して、合致するデータだけを表示させることをやっています。 下記のコードは、フォームを開いたときに一旦全件読み込んでデータグリッドに表示させ、フォームにおいてある条件を入力するテキストボックスから条件を入力して、検索ボタンを押したら該当データだけが表示されることをねらっています。試しに日付で開始と終了を指定して絞り込みに行くと再表示させたいところでエラーが起こります。(初期化まではうまくいっているように見えます)Fillメソッドの書き方が悪いのでしょうか?  最初は問題なく全件表示してくれるのですが、絞り込んだ後にうまくデータセットを更新するにはどうしたらいいのでしょうか?どうぞよろしくお願いいたします。 Private Sub MainDataDisp_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load OleDbDataAdapter1.Fill(objDsMainDisp, "T_メイン") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sdate As Date '検索開始年月日 Dim edate As Date '検索終了年月日 '検索SQLの定義 OleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM T_メイン WHERE (T_メイン.日付 > sdate AND T_メイン.日付 < edate)" 'データセットを初期化して、データアダプタからデータを読み込む objDsMainDisp.Clear() OleDbDataAdapter1.Fill(objDsMainDisp, "T_メイン") End Sub

専門家に質問してみよう