私の最新のプロジェクトについて、さらにいくつか質問があります。ここ数日でかなり進歩したように感じますが、特定の列からの読み取りと行全体の削除など、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 の線で表示されます