2010-12-30 12 views
0

ストアドプロシージャを実行し、その情報を(.netウィザードを使用せずに)データグリッドに配置しようとしています。私は信じています。 SqlDataReaderのは十分でしょう - 私はストアドプロシージャからgridviewを作成するのに役立ちます

Public cmd As New SqlCommand() 
    Public saoda As New SqlDataAdapter(cmd) 
    Public conn As New SqlConnection(" ") 
    Dim saods As New DataSet 

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 

     Dim reader As SqlDataReader 
     cmd.Parameters.AddWithValue("@yeartoget", DropDownList1.SelectedValue) 
     cmd.CommandText = "casof" 
     cmd.CommandType = CommandType.StoredProcedure 
     cmd.Connection = conn 

     conn.Open() 

     reader = cmd.ExecuteReader() 
     ' Data is accessible through the DataReader object here. 

     GridView1.DataSource = saods 

     saoda.FillSchema(saods, SchemaType.Mapped) 

     GridView1.DataBind() 
     conn.Close() 

    End Sub 
End Class 

vvvvv

Dim pctofsales As New DataColumn 
     pctofsales = New DataColumn("PCTofsales", GetType(Decimal)) 
     pctofsales.Expression = "IIF([YEsales] = 0, 0, [ASOFSales]/[YEsales])" 
     saods1.Tables("salesasoftable").Columns.Add(pctofsales) 

答えて

1

あなたがGridViewコントロールにDataSetをバインドする必要はありませんvb.netとasp.netを使用しています。つまり、次のように使用することができます。

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim reader As SqlDataReader 
    cmd.Parameters.AddWithValue("@yeartoget", DropDownList1.SelectedValue) 
    cmd.CommandText = "casof" 
    cmd.CommandType = CommandType.StoredProcedure 
    cmd.Connection = conn 

    conn.Open() 

    reader = cmd.ExecuteReader() 

    GridView1.DataSource = reader 
    GridView1.DataBind() 

    conn.Close() 
End Sub 

ただし、DataTableを使用する必要がある場合は、それほど大きな問題ではありません。次のスニペットでは、リーダーをDataTableに読み込みます。

Dim reader As SqlDataReader 
cmd.Parameters.AddWithValue("@yeartoget", DropDownList1.SelectedValue) 
cmd.CommandText = "casof" 
cmd.CommandType = CommandType.StoredProcedure 
cmd.Connection = conn 

conn.Open() 

reader = cmd.ExecuteReader() 

Dim myTable As DataTable = New DataTable() 
myTable.Load(reader) 

GridView1.DataSource = dt 
GridView1.DataBind() 

conn.Close() 

ハッピープログラミング!

+0

ありがとうございます。どの列を再調整するか、データセットを使用するかを選択することができますので、列を変更してリーダーをデータセットにバインドできます。 – MyHeadHurts

+0

@MyHeadHurts:何を指定するか列をGridViewに表示するには、GridViewのコレクションを使用し、そのAutoGenerateFieldsプロパティをFalseに設定します。デザイナーからも行うことができます - グリッドのスマートタグを開き、列の編集を選択します。 http://msdn.microsoft.com/en-us/library/aa479342.aspx –

+0

を参照してください私は今すぐ上に投稿するコードのような何かをしたい – MyHeadHurts

関連する問題