C# 当按下按钮时,如何在文本框中显示表格中某列的所有值?

C# 当按下按钮时,如何在文本框中显示表格中某列的所有值?,c#,sql,C#,Sql,我有一个查询,它在文本框中只显示表中一列中的一个值。如何修改代码以显示列中的所有对应值?我还有一个下拉列表,可以从中选择信息。代码如下: string selected = "SELECT Aname FROM Pet WHERE Species = '" + DropSpecies1.SelectedItem.ToString() + "'"; OleDbCommand myCommand = new OleDbCommand(selected, myConn

我有一个查询,它在文本框中只显示表中一列中的一个值。如何修改代码以显示列中的所有对应值?我还有一个下拉列表,可以从中选择信息。代码如下:

        string selected = "SELECT Aname FROM Pet WHERE Species = '" + DropSpecies1.SelectedItem.ToString() + "'";

        OleDbCommand myCommand = new OleDbCommand(selected, myConnection);

        try
        {
            myConnection.Open();
            OleDbDataReader myreader = myCommand.ExecuteReader();
            while (myreader.Read())
            {

                String animal = myreader["AName"].ToString();
                TextBox2.Text = animal;
            }


        }

        catch (Exception ex)
        {
            Label1.Text = "Exception in DBHandler" + ex;
        }
        finally
        {

            myConnection.Close();

        }
    }

您应该使用
+=
。使用
=
将不断更改文本,直到它到达最后一个,并且只有最后一个才会显示

TextBox2.Text += animal + " ";

您应该使用参数化查询来防止sql注入,您可以在循环中填写
列表
,然后使用
ToArray
创建
字符串[]
,您可以将其分配给
文本框
属性或通过
文本框2.Text=string.Join(Environment.NewLine,animals)

string sql=“从宠物中选择Aname,其中物种=@Species;”;
使用(var myConnection=new System.Data.OleDb.OleDbConnection(“连接字符串”))
使用(var myCommand=new System.Data.OleDb.OleDbCommand(sql,myConnection))
{
myCommand.Parameters.AddWithValue(“@Species”,DropSpecies1.SelectedItem.ToString());
试一试{
myConnection.Open();
列出动物=新列表();
使用(var rd=myCommand.ExecuteReader())
{
while(rd.Read())
添加(rd.GetString(0));
}
TextBox2.Lines=animals.ToArray();
//或通过字符串。连接:
TextBox2.Text=String.Join(Environment.NewLine,animals);
}捕获(例外情况除外)
{
Label1.Text=“DBHandler中的异常”+ex.ToString();
}
}

定义所有对应的值显示是否要在一个文本框中显示所有值?你想让它们以逗号分隔,然后显示它们还是什么?显示你想要的输出。这将更容易解列基本上,在列中有多个名称,查询只返回列中的姓氏。@user3076157-这是因为
TextBox2.Text=animal每次都将使用循环中的当前值覆盖文本框值。您必须执行
TextBox2.Text+=animal;+“,”
用于example@user3076157很高兴我能帮忙
string sql = "SELECT Aname FROM Pet WHERE Species = @Species;";
using(var myConnection = new System.Data.OleDb.OleDbConnection("Connection-String"))
using (var myCommand = new System.Data.OleDb.OleDbCommand(sql, myConnection))
{
    myCommand.Parameters.AddWithValue("@Species", DropSpecies1.SelectedItem.ToString());
    try {
        myConnection.Open();
        List<string> animals = new List<string>();
        using (var rd = myCommand.ExecuteReader())
        {
            while (rd.Read())
                animals.Add(rd.GetString(0));
        }
        TextBox2.Lines = animals.ToArray();  
        // or via String.Join:
        TextBox2.Text = String.Join(Environment.NewLine, animals);              
    } catch (Exception ex)
    {
        Label1.Text = "Exception in DBHandler" + ex.ToString();
    }
}