gpt4 book ai didi

c# - 将 DataGrid 导出到文本文件

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:20 25 4
gpt4 key购买 nike

我是编程新手(在大学学习的第一年),我正在开发一个小型应用程序。

我有一个窗口,用户可以在其中将数据从 SQL 检索到 DataGrid,还有一个 Button 用于将一些数据从 DataGrid 数据导出到文本文件。

这是我用来从 SQL 获取数据的代码:

SqlConnection con = new SqlConnection("Server = localhost;Database = autoser; Integrated Security = true");
SqlCommand cmd = new SqlCommand("selectproduct", con); // Using a Store Procedure.
cmd.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable("dtList");
cmd.Parameters.AddWithValue("@Code", txtbarcode.Text);

SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
data.ItemsSource = dt.DefaultView;
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapt.Fill(ds);
con.Close();
int count = ds.Tables[0].Rows.Count;
if (count == 0)
{
MessageBox.Show("This product doesn't excist");
SystemSounds.Hand.Play();
}
else if (count == 1)
{
lblinfo.Visibility = Visibility.Visible;
SystemSounds.Asterisk.Play();

}

这是我用来编写文本文件的代码:

{
using (StreamWriter writer = new StreamWriter("D:\\test.txt", true))
{
writer.WriteLine("Welcome");
writer.WriteLine("E N T E R N E T");
}

using (StreamWriter writer = new StreamWriter("D:\\test.txt", true))
{
writer.WriteLine(data.Items);
}


using (StreamWriter writer = new StreamWriter("D:\\test.txt", true))
{
writer.WriteLine(data.Items);
}
// Append line to the file.
using (StreamWriter writer = new StreamWriter("D:\\test.txt", true))
{
writer.WriteLine("---------------------------------------");
writer.WriteLine(" Thank You! ");
writer.WriteLine(" " + DateTime.Now + " ");
}
}

当我打开文本文件时,我得到了这些数据

Welcome
E N T E R N E T
System.Windows.Controls.ItemCollection - Why isn't show the data grid
data

---------------------------------------
Thank You
7/26/2018 12:38:37 PM

我的问题是:我的错误在哪里导致 DataGrid 中的数据没有以正确的方式显示?
提前致谢

最佳答案

您目前正在使用 WriteLine 方法的以下重载:

public virtual void WriteLine(object value)

如果您查看 StreamWriter.WriteLine(object) 的文档它说:

Writes the text representation of an object by calling the ToString method on that object, followed by a line terminator to the text string or stream.

这就是为什么您在文件中得到以下漂亮行的原因:

System.Windows.Controls.ItemCollection

Object.ToString() 的文档方法揭示了

default implementations of the Object.ToString method return the fully qualified name of the object's type.

您需要遍历集合并将每个条目分别写入文件。我还建议直接使用数据源,而不是从 DataGrid 写入。

foreach (DataRow row in dt.Rows)
{
object[] array = row.ItemArray;
writer.WriteLine(string.Join(" | ", array));
}

关于c# - 将 DataGrid 导出到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51536927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com