我有这个程序,我需要打印出多种商品(vare)的属性。我遇到的问题是它只能多次打印出单个项目的属性。我尝试将属性放入二维数组中,但它仍然打印出相同的属性。我的输出文件是一个 .txt 文件。我想要的是程序打印出商品清单,每个商品都有各自的属性。(有 4 个不同的项目和 6 个不同的属性)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace Opgave_4._1
{
class Program
{
static void Main()
{
string connString;
connString = "Data Source=(local);Initial Catalog=Occhi che guardano;Integrated Security=SSPI";
string sqlstring = "SELECT * FROM Vare ORDER BY Vare.Varenavn";
Console.WriteLine(sqlstring);
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sqlstring, conn);
conn.Open();
SqlDataReader Reader = cmd.ExecuteReader();
string att1;
decimal att2;
int att3;
string att4;
int att5;
string att6;
string[,] vareliste = new string[10, 10];
StreamWriter Stream = null;
String UdFil = "C:\\Users\\Thomas\\Desktop\\text.txt";
Stream = new StreamWriter(UdFil);
try
{
while (Reader.Read())
{
if (Reader.IsDBNull(0))
att1 = "hej";
else
att1 = Reader.GetString(0);
if (Reader.IsDBNull(1))
att2 = 0.0006000M;
else
att2 = Reader.GetDecimal(1);
if (Reader.IsDBNull(2))
att3 = 12;
else
att3 = Reader.GetInt32(2);
if (Reader.IsDBNull(3))
att4 = "hej";
else
att4 = Reader.GetString(3);
if (Reader.IsDBNull(4))
att5 = 14;
else
att5 = Reader.GetInt32(4);
if (Reader.IsDBNull(5))
att6 = "hejsa";
else
att6 = Reader.GetString(5);
Stream.WriteLine(att1 + " " + att2 + " " + att3 + " " + att4 + " " + att5 + " " + att6);
try
{
}
catch (Exception e)
{
Console.WriteLine("Fejl i sti {0}", e.ToString());
Console.ReadLine();
}
finally
{
if (Stream != null)
Stream.Close();
}
}
}
catch (System.Data.SqlClient.SqlException e)
{
Console.WriteLine(e.Message);
}
finally
{
Reader.Close(); // luk ResultSet
conn.Close(); // luk connection igen
}
}
}
}
这是打印输出(已编辑(删除 finally 子句后)):
1234 1200,0000 5飞行员1111 raiban
1234 1200,0000 5飞行员1111 raiban
1234 1200,0000 5飞行员1111 raiban
4321 110,0000 6 Femme 1111 Hindberg
4321 110,0000 6 Femme 1111 Hindberg
4321 110,0000 6 Femme 1111 Hindberg
3241 500 ,0000 2 Pilot-etui 3333 Raiban
3241 500,0000 2 Pilot-etui 3333 Raiban
3241 500,0000 2 Pilot-etui 3333 Raiban
1423 250,0000 30 飞溅 4444 Lensway
1423
(如果我在 for 循环中使用小于 3 的整数,由于某种原因它不会打印任何内容)
表中数据为
价格 = 价格。贮藏 = 储存。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 |
+---------+----------+-----------------+------------+---------------+-----------+