0
    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());
        }
    }
}

}

我有这个数据库,我有一个需要打印到文本文件并保存的商品清单和听到的驱动器。(变量 = 货物)。但是当我运行这段代码时,我得到一个错误。我的问题是我对这段代码做错了什么以及如何将列表保存在 .txt 文件中。我知道如何在 C# 中处理文件,但不知道如何将它与我的数据库集成。

4

1 回答 1

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());
}
于 2012-12-12T09:57:28.887 回答