我可以遍历SqlDataReader吗?并使用它一个接一个地在单个文本框中显示它的值

时间:2018-03-29 16:06:07

标签: c# .net sql-server sqldatareader

我使用的代码如下:

Button1_Click() 
{
    SqlDataReader dr;
    Command = "select country from customer";

    Con.open();

    While (dr.read())
    {
         Textbox1.text = dr.toValues(0);
    }
}

我想一个接一个地在textbox1中显示每个国家/地区。在每个按钮中单击。

3 个答案:

答案 0 :(得分:0)

只需使用它;

 Textbox1.text =Textbox1.text + "," + dr.toValues(0);

注意:如果您在后台线程中运行DataReader,则无法访问任何UI元素。在这种情况下,您可能需要变量

string result;

While (dr.read())
{
 result = result + "," + dr.ToValue(0) /// tovalue is also unnecessary, you should rather use :

result = result + "," + dr(0) /// you can use .ToString if you want

答案 1 :(得分:0)

您应该创建一个单独的变量,然后将其设置为文本框。

string result = string.empty

While (dr.read())
{
    if (string.IsNullOrWhiteSpace(result))
    {
        result = dr.GetString(0);
    }
    else
    {
        result = result  + ", " + dr.GetString(0);
    }
}

Textbox1.text = result;

答案 2 :(得分:0)

抱歉,我让你有点困惑: 我想说的是,当我们第一次点击按钮时,第一个国家/地区将显示在文本框中,此后当我们再次单击相同的按钮时,第一个国家/地区必须完全从文本框中消失,它的位置应该是由下一个国家(即下一行)拍摄,等等。