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#中处理文件,但不知道如何将其与我的数据库集成。
答案 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());
}