Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打印多个属性_C#_Sql_Arrays_File_Io - Fatal编程技术网

C# 打印多个属性

C# 打印多个属性,c#,sql,arrays,file,io,C#,Sql,Arrays,File,Io,我有这个程序,我需要打印出多个商品的属性(vare)。我遇到的问题是,它只多次打印出单个项目的属性。我尝试将属性放入二维数组,但它仍然打印出相同的属性。我的输出文件是一个.txt文件。我想要的是,程序打印出一个商品列表,每个商品都有各自的属性显示。(有4个不同的项目和6个不同的属性) } 这是打印输出(编辑(删除finally子句后)): 1234 12000000 5飞行员1111雷班 1234 12000000 5飞行员1111雷班 1234 12000000 5飞行员1111雷班 4321

我有这个程序,我需要打印出多个商品的属性(vare)。我遇到的问题是,它只多次打印出单个项目的属性。我尝试将属性放入二维数组,但它仍然打印出相同的属性。我的输出文件是一个.txt文件。我想要的是,程序打印出一个商品列表,每个商品都有各自的属性显示。(有4个不同的项目和6个不同的属性)

}

这是打印输出(编辑(删除finally子句后)):

1234 12000000 5飞行员1111雷班
1234 12000000 5飞行员1111雷班
1234 12000000 5飞行员1111雷班
4321 1100000 6女性1111 Hindberg
4321 1100000 6女性1111 Hindberg
4321 1100000 6女性1111 Hindberg
3241 5000000 2试点etui 3333 Raiban
3241 5000000 2试点etui 3333 Raiban
3241 5000000 2试点etui 3333 Raiban
1423 2500000 30飞溅4444伦斯韦
1423年

(如果我在for循环中使用小于3的整数,出于某种原因,它不会打印任何内容)

表中的数据为

Pris=价格。啤酒=储藏。Antal=金额。Gruppe=组。Mærke=品牌

+---------+----------+-----------------+------------+---------------+-----------+
| Vare_id | Varepris | VareLager_antal |  Varenavn  | Varegruppe_nr | Varemærke |
+---------+----------+-----------------+------------+---------------+-----------+
|    1234 | 1200     |               5 | Aviator    |          1111 | Raiban    |
|    1423 | 250      |              30 | Splash     |          4444 | Lensway   |
|    3241 | 500      |               2 | Pilot-etui |          3333 | Raiban    |
|    4321 | 110      |               6 | Femme      |          1111 | Hindberg  |
+---------+----------+-----------------+------------+---------------+-----------+

为每次迭代创建一个新的
StreamWriter
,意味着您每次都会覆盖您的文件。你只会得到这里的最后一张唱片

每次迭代读取同一字段四次,每次都会返回相同的结果。只有在调用
Reader.Read()时,记录集才会移动

您应该尝试使用
语句来控制资源的清理。比如说

using (SqlConnection conn = new SqlConnection(connString)) {
    using (StreamWriter s = new StreamWriter(UdFil)) {
        while (Reader.Read()) {
           ....
        }
    }
}

这将适当地关闭
连接
StreamWriter

谢谢!但是你会把对“Reader.Read()”的调用放在哪里呢?关于StreamWriter,我认为它在迭代之外,因为它是在for循环之外调用的。你已经有了一个使用
While(Reader.Read())的外部循环
。这将在结果集中每行运行一次。您的流是在此循环内创建的。抱歉,没有看到。因此,您想让我在while循环外调用Streamwriter吗?我想是“想要”“这是个错误的词。我想让你明白为什么你会得到这些结果。如果您现在认为将
StreamWriter
放在循环之外会有所帮助,您应该试试看。我试过了,现在得到了与以前相同的结果,但不是一次,而是三次。我不明白。
+---------+----------+-----------------+------------+---------------+-----------+
| Vare_id | Varepris | VareLager_antal |  Varenavn  | Varegruppe_nr | Varemærke |
+---------+----------+-----------------+------------+---------------+-----------+
|    1234 | 1200     |               5 | Aviator    |          1111 | Raiban    |
|    1423 | 250      |              30 | Splash     |          4444 | Lensway   |
|    3241 | 500      |               2 | Pilot-etui |          3333 | Raiban    |
|    4321 | 110      |               6 | Femme      |          1111 | Hindberg  |
+---------+----------+-----------------+------------+---------------+-----------+
using (SqlConnection conn = new SqlConnection(connString)) {
    using (StreamWriter s = new StreamWriter(UdFil)) {
        while (Reader.Read()) {
           ....
        }
    }
}