C# 如何将SQL表正确显示到同步的ComboBox中,以及如何将ComboBox.text仅修改为SQL表单元格值

C# 如何将SQL表正确显示到同步的ComboBox中,以及如何将ComboBox.text仅修改为SQL表单元格值,c#,sql,vb.net,combobox,C#,Sql,Vb.net,Combobox,我相信这类问题是愚蠢的,但在做了一些互联网搜索并尝试了许多解决方案后,我在这个令人惊叹的论坛上申请了一些帮助:- 我正在尝试为一个历史性的微型战略游戏制作一个陆军建设者列表程序 我之所以使用VB.NET,是因为我有一些VB6的概念,但据我所知,我是一个VB.NET完全的新手,例如,我可以切换到C。我相信我的知识在接近0时会是一样的 下面是我如何处理它的: 在这个游戏中有300个军队名单。我想创建300个SQL表,其中包括每个列表单元的信息,如名称、短名称、类型、质量和成本 之后,我想阅读这些表格

我相信这类问题是愚蠢的,但在做了一些互联网搜索并尝试了许多解决方案后,我在这个令人惊叹的论坛上申请了一些帮助:-

我正在尝试为一个历史性的微型战略游戏制作一个陆军建设者列表程序

我之所以使用VB.NET,是因为我有一些VB6的概念,但据我所知,我是一个VB.NET完全的新手,例如,我可以切换到C。我相信我的知识在接近0时会是一样的

下面是我如何处理它的:

在这个游戏中有300个军队名单。我想创建300个SQL表,其中包括每个列表单元的信息,如名称、短名称、类型、质量和成本

之后,我想阅读这些表格,并将结果放入几个组合框或文本框中,但我相信组合框控件更适合这种情况?以允许用户浏览可用单元

我希望所有的组合框都同步,以便显示相同的行信息

关于quality combobox,我希望它读取qualitéu单位单元格值,在与qualityéu combobox值进行比较后,只需将其更改为正确的值,而不更改dropdownlist,用户可以自由更改它

以下是一个表格示例:

下面是一个程序截图示例

下面是一个程序屏幕截图示例,其中包含加载的表

我用这个马铃薯代码做到了这一点,但我100%确信这不是一个好方法:

 Dim connection As New SqlConnection("Data Source=Server;Initial Catalog=OST;Integrated Security=True")
    Dim dt As New DataTable
    Dim sqlquery As String
    Dim bs1 As New BindingSource

    connection.Open()

    sqlquery = "select * from liste1"

    Dim cmd As New SqlCommand(sqlquery, connection)

    dt.Load(cmd.ExecuteReader)

    bs1.DataSource = dt

    Dim SQL As SqlDataReader = cmd.ExecuteReader


    While SQL.Read

        ComboBoxNomUnités.DataSource = bs1
        ComboBoxNomUnités.DisplayMember = SQL("nom_unité")
        ComboBoxNomUnités.ValueMember = "nom_unité"

        ComboBoxTypeUnités.DataSource = bs1
        ComboBoxTypeUnités.DisplayMember = SQL("type_unité")
        ComboBoxTypeUnités.ValueMember = "type_unité"

        ComboBoxAbréviationUnités.DataSource = bs1
        ComboBoxAbréviationUnités.DisplayMember = SQL("abréviation_unité")
        ComboBoxAbréviationUnités.ValueMember = "abréviation_unité"

        ComboBoxCoutTotal.DataSource = bs1
        ComboBoxCoutTotal.DisplayMember = SQL("cout_unité")
        ComboBoxCoutTotal.ValueMember = "cout_unité"
对于质量单位值检查,我尝试了类似的方法,但当然,它不起作用: 无论如何,非常感谢您的帮助:

我愿意学习,即使我是一个完全的初学者

编辑: 这是我的第一个问题的解决方案,由jdweng提供

 Dim connection As New SqlConnection("Data Source=Server;Initial Catalog=OST;Integrated Security=True")
        Dim dt As New DataTable
        Dim sqlquery As String


        connection.Open()

        sqlquery = "select * from liste1 Order By index_unité"


        Dim SQL As New SqlDataAdapter(sqlquery, connection)
        SQL.Fill(dt)


        ComboBoxNomUnités.DataSource = dt
        ComboBoxNomUnités.DisplayMember = "nom_unité"

        ComboBoxTypeUnités.DataSource = dt
        ComboBoxTypeUnités.DisplayMember = "type_unité"

        ComboBoxAbréviationUnités.DataSource = dt
        ComboBoxAbréviationUnités.DisplayMember = "abréviation_unité"

        ComboBoxCoutTotal.DataSource = dt
        ComboBoxCoutTotal.DisplayMember = "cout_unité"


        connection.Close()
Dim connection As New SqlConnection("Data Source=Server;Initial Catalog=OST;Integrated Security=True")
        Dim dt As New DataTable
        Dim sqlquery As String


        connection.Open()

        sqlquery = "select * from liste1 Order By index_unité"


        Dim SQL As New SqlDataAdapter(sqlquery, connection)
        SQL.Fill(dt)


        ComboBoxNomUnités.DataSource = dt
        ComboBoxNomUnités.DisplayMember = "nom_unité"

        ComboBoxTypeUnités.DataSource = dt
        ComboBoxTypeUnités.DisplayMember = "type_unité"

        ComboBoxAbréviationUnités.DataSource = dt
        ComboBoxAbréviationUnités.DisplayMember = "abréviation_unité"

        ComboBoxCoutTotal.DataSource = dt
        ComboBoxCoutTotal.DisplayMember = "cout_unité"


        connection.Close()
由jdweng提供

 Dim connection As New SqlConnection("Data Source=Server;Initial Catalog=OST;Integrated Security=True")
        Dim dt As New DataTable
        Dim sqlquery As String


        connection.Open()

        sqlquery = "select * from liste1 Order By index_unité"


        Dim SQL As New SqlDataAdapter(sqlquery, connection)
        SQL.Fill(dt)


        ComboBoxNomUnités.DataSource = dt
        ComboBoxNomUnités.DisplayMember = "nom_unité"

        ComboBoxTypeUnités.DataSource = dt
        ComboBoxTypeUnités.DisplayMember = "type_unité"

        ComboBoxAbréviationUnités.DataSource = dt
        ComboBoxAbréviationUnités.DisplayMember = "abréviation_unité"

        ComboBoxCoutTotal.DataSource = dt
        ComboBoxCoutTotal.DisplayMember = "cout_unité"


        connection.Close()
Dim connection As New SqlConnection("Data Source=Server;Initial Catalog=OST;Integrated Security=True")
        Dim dt As New DataTable
        Dim sqlquery As String


        connection.Open()

        sqlquery = "select * from liste1 Order By index_unité"


        Dim SQL As New SqlDataAdapter(sqlquery, connection)
        SQL.Fill(dt)


        ComboBoxNomUnités.DataSource = dt
        ComboBoxNomUnités.DisplayMember = "nom_unité"

        ComboBoxTypeUnités.DataSource = dt
        ComboBoxTypeUnités.DisplayMember = "type_unité"

        ComboBoxAbréviationUnités.DataSource = dt
        ComboBoxAbréviationUnités.DisplayMember = "abréviation_unité"

        ComboBoxCoutTotal.DataSource = dt
        ComboBoxCoutTotal.DisplayMember = "cout_unité"


        connection.Close()

数据库中的结果可能无法排序。因此,在查询中添加一个OrderBy:select*from liste1 OrderBy index_uniteWell,谢谢jdweng。这是一个开始。我会的!编辑:它生成一个新错误:指向:dt.Loadcmd.ExecuteReader,下面是错误消息:System.Data.SqlClient.SqlException:“index_unité”的语法不正确。“Order By”是两个单词。请参阅下面的语法:是的,我找到了,但仍然有一个错误:System.Data.SqlClient.SqlException:“除非使用LIKE或IS NULL运算符,否则无法对文本、ntext和图像数据类型进行比较或分类。”