.net 编写文本文件
我正在使用VB.NET和,我想从数据库中编写一个文本文件 打开一个文本文件,从数据库中读取数据,然后写入文本文件 代码 上面的代码显示错误,如何编写文本文件.net 编写文本文件,.net,vb.net,.net,Vb.net,我正在使用VB.NET和,我想从数据库中编写一个文本文件 打开一个文本文件,从数据库中读取数据,然后写入文本文件 代码 上面的代码显示错误,如何编写文本文件 VB.NET代码帮助文件。ReadAllText如果用于从文件中读取 File.WriteAllText会将所有内容写入文件,覆盖其中的内容 您需要获得如下数据: data = dr.Item("PersonID").ToString() 写作时,您可能希望: 更有效的方法是循环数据,在内存中构建整个数据集(在每行末尾添加换行符),然后使
VB.NET代码帮助
文件。ReadAllText
如果用于从文件中读取
File.WriteAllText
会将所有内容写入文件,覆盖其中的内容
您需要获得如下数据:
data = dr.Item("PersonID").ToString()
写作时,您可能希望:
更有效的方法是循环数据,在内存中构建整个数据集(在每行末尾添加换行符),然后使用File.writealText
一次性写入所有数据。我假设数据量不是很大,因为这种方法将使用更多内存,但会导致更少的磁盘IO
cmd = New SqlCommand("SELECT ID, Name, Dept from table", con)
dr = cmd.ExecuteReader
Dim sb as new StringBuilder
While dr.Read()
''Let's read line by line and Append it to our StringBuilder
sb.AppendLine(
String.Format("{0} | {1} | {2} | {3}",
dr.item("ID"), dr.item("Name"), dr.item("Dept") ))
End While
''Now that we have all data in our StringBuilder, lets put into our file
File.WriteAllLines("D:\test.txt", sb.ToString())
p.S。从一个C#家伙那里。。。请验证代码是否正确:)(下面是C代码)
在您的代码中,您实际上并没有从数据库中读取数据。试试这个:
Using writer = New StreamWriter("d:\test.txt")
While dr.Read()
Dim id = dr.GetInt32(0)
Dim name = dr.GetString(1)
Dim dept = dr.GetString(2)
writer.WriteLine(String.Format("{0} {1} {2}", id, name, dept))
End While
End Using
那么,错误是什么?@Sosh ReadAllText采用的是路径,而不是数据!它读取一个文件路径。。。即使PersonID类似于C:\myfile.txt,位于D:的文件也将只包含上次读取的文件,因为WriteAllText会覆盖它(始终创建一个新文件)!“难道你看不出这里有这么多的时间吗?”巴莱桑德尔-我不是那个要求答案的人。我也不确定我是否理解你关于时间的观点。我的观点是,如果您发布了一个关于包含错误的问题的问题,您当然也应该发布错误。如果您使用时间跨度来查看StreamWrite使用的时间,File.writeAllines比StreamWriter快得多!我有20行代码读取一个文件,获取其内容大小,然后以中的大小再次写入该文件,使用StreamRead和StreamWriter大约需要28毫秒,而file.ReadAllLines和file.WriteAllLines现在需要3毫秒@如果SQL查询返回数百万条记录,该怎么办?你要把它们全部载入内存吗?在我的例子中,我正在处理1800行文本,我给你的时间就是为了这个。关于“100万”,我可能需要进行计算,但在Windows环境中,是的,我会使用内存!
cmd = New SqlCommand("SELECT ID, Name, Dept from table", con)
dr = cmd.ExecuteReader
Dim sb as new StringBuilder
While dr.Read()
''Let's read line by line and Append it to our StringBuilder
sb.AppendLine(
String.Format("{0} | {1} | {2} | {3}",
dr.item("ID"), dr.item("Name"), dr.item("Dept") ))
End While
''Now that we have all data in our StringBuilder, lets put into our file
File.WriteAllLines("D:\test.txt", sb.ToString())
using (SqlConnection con = new SqlConnection("my Connection String"))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "SELECT ID, Name, Dept from table";
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
while (dr.Read())
// Let's read line by line and Append it to our StringBuilder
sb.AppendLine(
String.Format("{0} | {1} | {2} | {3}",
dr["ID"], dr["Name"], dr["Dept"]));
// Now that we have all data in our StringBuilder, lets put into our file
File.WriteAllLines("D:\test.txt", sb.ToString());
}
}
Using writer = New StreamWriter("d:\test.txt")
While dr.Read()
Dim id = dr.GetInt32(0)
Dim name = dr.GetString(1)
Dim dept = dr.GetString(2)
writer.WriteLine(String.Format("{0} {1} {2}", id, name, dept))
End While
End Using