C# WinForm 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
答案:1 悬赏:40
解决时间 2022-01-01 05:54
- 提问者网友:不爱我么
- 2021-12-31 08:04
C# WinForm 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
最佳答案
- 二级知识专家网友:思契十里
- 2021-12-31 08:11
using (SaveFileDialog sfdTxt = new SaveFileDialog())
{
sfdTxt.Filter = "txt文本文件(*.txt)|*.txt";
if (DialogResult.OK==sfdTxt.ShowDialog())
{
using (StreamWriter streamWriter = new StreamWriter(sfdTxt.FileName, System.Text.Encoding.Unicode))
{
for (int i = 0; i < this.dgvSale.Rows.Count; i++)
{
streamWriter.WriteLine(this.dgvSale.Rows[i].Cells[3].Value.ToString() + " " + this.dgvSale.Rows[i].Cells[8].Value.ToString() + " " + this.dgvSale.Rows[i].Cells[10].Value.ToString());
}
streamWriter.Close();
}
}
else
{
return;
}
txtStream.Dispose();
}追问谢谢你的回答,但还是存在一样的问题。第二次修改datagridview的内容后再执行导出就会在if (sfdTxt.ShowDialog() == DialogResult.OK)这条语句出错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”
{
sfdTxt.Filter = "txt文本文件(*.txt)|*.txt";
if (DialogResult.OK==sfdTxt.ShowDialog())
{
using (StreamWriter streamWriter = new StreamWriter(sfdTxt.FileName, System.Text.Encoding.Unicode))
{
for (int i = 0; i < this.dgvSale.Rows.Count; i++)
{
streamWriter.WriteLine(this.dgvSale.Rows[i].Cells[3].Value.ToString() + " " + this.dgvSale.Rows[i].Cells[8].Value.ToString() + " " + this.dgvSale.Rows[i].Cells[10].Value.ToString());
}
streamWriter.Close();
}
}
else
{
return;
}
txtStream.Dispose();
}追问谢谢你的回答,但还是存在一样的问题。第二次修改datagridview的内容后再执行导出就会在if (sfdTxt.ShowDialog() == DialogResult.OK)这条语句出错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯