C#如何将多个sql数据输出到文本?(单个查询正在运行)

C#如何将多个sql数据输出到文本?(单个查询正在运行),c#,sql,textbox,sqldatareader,C#,Sql,Textbox,Sqldatareader,我正在搜索一个提示或代码示例,以便将SQL数据库中的多条记录输出到一个文本框,这些记录的名称相同,称为auftragsummer,但第二个值不同,称为Stellplatz 这是我的工作代码,用于将一个搜索查询输出到两个文本框: private void search_btn_Click(object sender, EventArgs e) { con.Open(); cmd.Connection = con; SqlCommand myC

我正在搜索一个提示或代码示例,以便将SQL数据库中的多条记录输出到一个文本框,这些记录的名称相同,称为auftragsummer,但第二个值不同,称为Stellplatz

这是我的工作代码,用于将一个搜索查询输出到两个文本框:

private void search_btn_Click(object sender, EventArgs e)
    {
        con.Open();
        cmd.Connection = con;
        SqlCommand myCommand = new SqlCommand("SELECT * FROM[FAUF] WHERE Auftragsnummer = '" + txt_search.Text + "'", con);
        mdr = myCommand.ExecuteReader();
        if (mdr.Read())
        {
            txt_searchNr.Text = mdr["Auftragsnummer"].ToString();
            txt_searchSF.Text = mdr["Stellplatz"].ToString();
            txt_search.SelectAll();
        }
        else
        {
            txt_searchNr.Text = "---";
            txt_searchSF.Text = "---";
            txt_search.SelectAll();
            MessageBox.Show("Keine Daten gefunden - Bitte überprüfen Sie Ihre Eingaben!");

        }
        con.Close();
    }
用户可以使用名为Stellplatz的不同秒值多次添加Auftragsummer

Example:
102555 - > 3
102555 - > 7

如何将SQL数据库中的第二条记录转换为代码中的第二个输出?

关闭Con并再次打开它,然后写入新的查询

关闭Con并再次打开它,然后写入新的查询

在循环过程中,直到mdr.Read()无法解决您的问题:

     private void search_btn_Click(object sender, EventArgs e)
        {
            con.Open();
            cmd.Connection = con;
            SqlCommand myCommand = new SqlCommand("SELECT * FROM[FAUF] WHERE Auftragsnummer = '" + txt_search.Text + "'", con);
            mdr = myCommand.ExecuteReader();

            if (!mdr.Read())
            {
                txt_searchNr.Text = "---";
                txt_searchSF.Text = "---";
                txt_search.SelectAll();
                MessageBox.Show("Keine Daten gefunden - Bitte überprüfen Sie Ihre Eingaben!");
                con.Close();
                return;
            }

            while (mdr.Read())
            {
                //Do your code here
            }

            con.Close();
        }

在mdr.Read()无法解决问题之前,请执行while循环:

     private void search_btn_Click(object sender, EventArgs e)
        {
            con.Open();
            cmd.Connection = con;
            SqlCommand myCommand = new SqlCommand("SELECT * FROM[FAUF] WHERE Auftragsnummer = '" + txt_search.Text + "'", con);
            mdr = myCommand.ExecuteReader();

            if (!mdr.Read())
            {
                txt_searchNr.Text = "---";
                txt_searchSF.Text = "---";
                txt_search.SelectAll();
                MessageBox.Show("Keine Daten gefunden - Bitte überprüfen Sie Ihre Eingaben!");
                con.Close();
                return;
            }

            while (mdr.Read())
            {
                //Do your code here
            }

            con.Close();
        }

下面的代码现在用于两条记录,但当数据库中只有一条记录时,输出似乎为空

        if (!mdr.Read())
        {
            txt_searchNr.Text = "---";
            txt_searchSF.Text = "---";
            txt_searchNr1.Text = "---";
            txt_searchSF1.Text = "---";
            MessageBox.Show("Keine Daten gefunden - Bitte überprüfen Sie Ihre Eingaben!");
            con.Close();
            return;
        }

        if (mdr.HasRows)
        {
            while (mdr.Read())
            {
                txt_searchNr.Text = mdr["Auftragsnummer"].ToString();
                txt_searchSF.Text = mdr["Stellplatz"].ToString();

                while (mdr.Read())
                    {
                        txt_searchNr1.Text = mdr["Auftragsnummer"].ToString();
                        txt_searchSF1.Text = mdr["Stellplatz"].ToString();
                    }
                mdr.NextResult();
            }

        }
        con.Close();

下面的代码现在用于两条记录,但当数据库中只有一条记录时,输出似乎为空

        if (!mdr.Read())
        {
            txt_searchNr.Text = "---";
            txt_searchSF.Text = "---";
            txt_searchNr1.Text = "---";
            txt_searchSF1.Text = "---";
            MessageBox.Show("Keine Daten gefunden - Bitte überprüfen Sie Ihre Eingaben!");
            con.Close();
            return;
        }

        if (mdr.HasRows)
        {
            while (mdr.Read())
            {
                txt_searchNr.Text = mdr["Auftragsnummer"].ToString();
                txt_searchSF.Text = mdr["Stellplatz"].ToString();

                while (mdr.Read())
                    {
                        txt_searchNr1.Text = mdr["Auftragsnummer"].ToString();
                        txt_searchSF1.Text = mdr["Stellplatz"].ToString();
                    }
                mdr.NextResult();
            }

        }
        con.Close();
如:
while(reader.Read()){/*新行可用*/}
中所述:
while(reader.Read()){/*新行可用*/}
感谢您的示例:)我现在的问题是,最新的记录显示在我的输出中,但第二个记录没有显示在第二个文本框中。我想填写第一条记录TextAuftrag1和TextST1,第二条记录另一对名为TextAuftrag2和TextST2。感谢您的示例:)我现在的问题是,最新的记录显示在我的输出中,但第二条记录没有显示在第二个文本框中。我想用第一条记录TextAuftrag1和TextST1来填充,用第二条记录来填充另一对,比如TextAuftrag2和TextST2。