0

私の最新のプロジェクトについて、さらにいくつか質問があります。ここ数日でかなり進歩したように感じますが、特定の列からの読み取りと行全体の削除など、SQL ライブラリのいくつかの中心的な概念にまだ苦労しています。

先週、私は Web フォームを作成し、Excel ファイルをサーバーに保存し、それらのファイルを開いてデータを特定の SQL テーブルにエクスポートし、ユーザーがドロップダウンで選択した内容に応じてデータを特定のデータ グリッドにバインドすることができました。

私が達成したいのは、ユーザーが最初のドロップダウンから選択したものに応じて、別のドロップダウンを動的に作成することです。より具体的には、4 つのテーブルがあり、各テーブルの最初の列にシリアル番号があります。ユーザーが最初のドロップダウンで Table2 を選択した場合、2 番目のドロップダウンに Table2 の列 1 からすべてのシリアル番号を表示したいと思います。次に、ユーザーが 2 番目のドロップダウンから特定のシリアル番号を選択すると、その関連行の列 1 ~ 5 がデータグリッドに入力されます。

2 番目の部分は、データグリッドに情報が表示された後にユーザーが押すことができる削除ボタンを作成することです。これにより、そのテーブルからシリアル番号エントリの行全体が削除されます。

これは私がフランケンシュタインに他の例から一緒に管理したものです:

 Protected Sub DropDownList1_SelectedIndexChanged(sender As Object, e As System.EventArgs)
    DropDownList2.Enabled = True 'its remains disabled until the user selects something from the first box
    Using con As New SqlClient.SqlConnection
        con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & AppPath & "App_Data\DeviceDatabase.MDF;Integrated Security=True;User Instance=True;"
        Using cmd As New SqlClient.SqlCommand
            cmd.Connection = con
        End Using
        Dim cmdSQL As New SqlCommand()
        cmdSQL.CommandType = Data.CommandType.Text
        cmdSQL.CommandText = "SELECT Fieldname1 FROM " & """" & DropDownList1.SelectedItem.ToString & """" 'Im pretty sure this isnt right, and the reason I use """"" is because some of the items in the dropdown have spaced words.

        Dim adptSQL As New SqlClient.SqlDataAdapter(cmdSQL)
        Dim myDataSet As New DataSet()
        adptSQL.Fill(myDataSet)

        With myDataSet.Tables(DropDownList1.SelectedIndex) 'I think this is right
            For rowNumber As Integer = 0 To .Rows.Count - 1
                With .Rows(rowNumber)
                    DropDownList2.Items.Add(col1.rowNumber) 'This is obviously not working 
                End With
            Next
        End With
    End Using
End Sub

次に、選択した行をデータテーブルに入力する方法がよくわかりませんが、現在、次を使用してテーブル全体を実行できます。

Private Sub GenTables(ByVal DropList As Object)
    If DropList.SelectedIndex = 0 Then
        GridView1.DataSourceID = Nothing
    ElseIf DropList.SelectedIndex = 1 Then
        GridView1.DataSourceID = "SqlDataSource1"
    ElseIf DropList.SelectedIndex = 2 Then
        GridView1.DataSourceID = "SqlDataSource2"
    ElseIf DropList.SelectedIndex = 3 Then
        GridView1.DataSourceID = "SqlDataSource3"
    ElseIf DropList.SelectedIndex = 4 Then
        GridView1.DataSourceID = "SqlDataSource4"
    End If
    GridView1.DataBind()
End Sub

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:DeviceDatabaseConnectionString1 %>" 
        ProviderName="<%$ ConnectionStrings:DeviceDatabaseConnectionString1.ProviderName %>" 
        SelectCommand="SELECT [Device:] AS column1, [SWversion:] AS column2, [Date:] AS column3, [Tester:] AS column4, [Wifi Preferred InCov:] AS column5 FROM [Galaxy Nexus]">
    </asp:SqlDataSource>

'there are 3 more of these.

しかし、私はこれらのテーブルをアプリケーションに「ハードコード」しています。テーブルのすべての行でこれを行うことは明らかにできません。では、事前に asp で SQLDataSource を設定せずにデータグリッドを設定するにはどうすればよいでしょうか?

最後に、ボタンをクリックしてデータグリッドに表示される情報に関連する行を削除します。最初の部分で少し助けが得られれば、2番目の部分を理解できると確信しています.

だから私が求めているのは、Coloumn1 のすべての項目をドロップダウンに入力する方法です。特定の行からデータグリッドを作成する方法は?

すべてのヘルプは常に大歓迎です。みんなありがとう

ザック

編集

うーん、私はこれを必要以上に難しくしていたと思います。今、私はこれに取り組んでいます:

      Protected Sub BindDrop_Click(sender As Object, e As System.EventArgs)
        DropDownList2.DataSourceID = "SqlDataSource5"
        DropDownList2.DataBind()      
      End Sub

<asp:SqlDataSource ID="SqlDataSource5" runat="server" 
        ConnectionString="<%$ ConnectionStrings:DeviceDatabaseConnectionString1 %>" 
        ProviderName="<%$ ConnectionStrings:DeviceDatabaseConnectionString1.ProviderName %>" 
        SelectCommand="SELECT [Device:] AS column1 FROM [Galaxy Nexus]">

まったく正しくありませんが、より近く、1/10 の線で表示されます

4

1 に答える 1

0

わかりました。ExecuteReader関数を使用する必要がありました(このメソッドを使用する自動入力で1つの記事を見つけることができませんでした)。うまくいけば、これを書いたり答えたりすることで、誰かの生活がずっと楽になります。

 Protected Sub DropDownList2_SelectedIndexChanged(sender As Object, e As System.EventArgs)
    DropDownList3.Enabled = True
    DropDownList3.Items.Clear()
    Dim newsqlcommand As String = "Select [SWversion:] FROM " & """" & DropDownList2.SelectedItem.ToString & """"       
    Using con As New System.Data.SqlClient.SqlConnection(connexstring)
        con.Open()
        Using cmd As New SqlCommand(newsqlcommand, con)
            Dim myReader As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
            While myReader.Read()            
                DropDownList3.Items.Add(myReader.GetString(0))
            End While
            myReader.Close()
            cmd.Dispose()
        End Using
        con.Close()
        con.Dispose()
    End Using
    Dbind()    
End Sub   

これにより、「SWVersion」列のすべてのアイテムが正常に読み取られ、dropdown3のドロップダウンに追加されます。楽しみ!

于 2012-09-26T17:46:20.807 に答える