从数据库打印商品清单

时间:2012-12-12 09:50:15

标签: c# sql database file

    void Main()
    {
        string connString;
        connString = "Data Source=(local);Initial Catalog=Ochhi che guardano;Integrated Security=SSPI";


        String sqlString;
        try
        {
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();
            sqlString = "SELECT Vare.varenavn";
            sqlString += " FROM vare";
            sqlString += " ORDER BY vare.varenavn";
            SqlCommand cmd = new SqlCommand(sqlString, conn);
            SqlDataReader reader =
            cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            if (reader.HasRows)
            {
                reader.Read();
                Console.WriteLine(reader.GetString(0));
            }
            reader.Close();
            conn.Close();
        }
        catch (System.Data.SqlClient.SqlException e)
        {
            Console.WriteLine(e.ToString());
        }
    }
}

}

我有这个数据库,我有一个我需要打印到文本文件并保存和听到的驱动器的商品列表。 (vare =货物)。但是,当我运行此代码时,我收到一个错误。我的问题是我在使用此代码时出错了,以及如何将列表保存在.txt文件中。我知道如何在C#中处理文件,但不知道如何将其与我的数据库集成。

1 个答案:

答案 0 :(得分:1)

我怀疑你回来了多行,目前你只能显示一行。那是因为你没有在阅读器中进行迭代。尝试以下代替你的if块。

while (reader.Read())
{
    Console.WriteLine(reader.GetString(0));
}

如果要将数据存储在文本文件中,可以将每个返回的字符串存储在列表中,然后将该列表写入文本文件。所以你的代码是:

try
{
    SqlConnection conn = new SqlConnection(connString);
    conn.Open();
    sqlString = "SELECT Vare.varenavn";
    sqlString += " FROM vare";
    sqlString += " ORDER BY vare.varenavn";
    SqlCommand cmd = new SqlCommand(sqlString, conn);
    SqlDataReader reader =
    cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    List<string> strList = new List<string>();
    while (reader.Read())
    {
        string temp = reader.GetString(0);
        strList.Add(temp);
        Console.WriteLine(reader.GetString(0));
    }
    reader.Close();
    conn.Close();
   //code to write list to text file
   File.WriteAllLines(Application.StartupPath + "\\text.txt", strList.ToArray());
}
catch (System.Data.SqlClient.SqlException e)
{
    Console.WriteLine(e.ToString());
}