Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中编辑.Bat文件#_C#_Asp.net - Fatal编程技术网

C# 在C中编辑.Bat文件#

C# 在C中编辑.Bat文件#,c#,asp.net,C#,Asp.net,首先,我的代码是: protected void Button2_Click1(object sender, EventArgs e) { string batname = edit.SelectedValue; StreamWriter sw = new StreamWriter("D:\\MPSite-Serv\\bats\\" + batname); string theedit = batedit.Text; sw.WriteLine(theedit);

首先,我的代码是:

protected void Button2_Click1(object sender, EventArgs e)
{
    string batname = edit.SelectedValue;
    StreamWriter sw = new StreamWriter("D:\\MPSite-Serv\\bats\\" + batname);

    string theedit = batedit.Text;
    sw.WriteLine(theedit);
    sw.Flush();
}
当我点击
按钮2
并尝试将所有文本写入bat文件时,我得到bat文件包含的结果:

System.Web.UI.WebControls.TextBox
为什么呢

如果有帮助,我将使用以下所有语句:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Diagnostics;

您得到了文本框的类型名称,这让我相信您的代码看起来像:

sw.WriteLine(batedit);
也就是说,您正在发送要写入文件的textbox对象本身,而不是其
Text
属性的内容。这将隐式调用
ToString
方法,默认情况下,该方法返回对象的类型名称


此外,您没有正确关闭
StreamWriter
,这可能会在您想要使用它时导致问题。您应该调用
Close
方法,并且在关闭
StreamWriter
之前不必调用
Flush
。或者,您可以使用块将
StreamWriter
放入一个
中,该块会自动处理它,并将其关闭。

您得到的是文本框的类型名称,这让我相信您的代码看起来很像:

sw.WriteLine(batedit);
也就是说,您正在发送要写入文件的textbox对象本身,而不是其
Text
属性的内容。这将隐式调用
ToString
方法,默认情况下,该方法返回对象的类型名称

此外,您没有正确关闭
StreamWriter
,这可能会在您想要使用它时导致问题。您应该调用
Close
方法,并且在关闭
StreamWriter
之前不必调用
Flush
。或者,您可以使用
块将
StreamWriter
放入
中,该块将自动对其进行处理,并将其关闭。

问题很简单:sw.writeline需要一个字符串。您正在向其发送一个文本对象,该对象将转换为上述.ToString();这意味着你的台词会被松散地翻译成

sw.WriteLine(theedit.ToString());
如果您查看WebControl.TextBox的文档。。。向下滚动列表到方法ToString()

你需要做的是。。。一次只给它一个字符串(尽管我假设你可以从文本框中给它一个原始字符串):

问题很简单:sw.writeline需要一个字符串。您正在向其发送一个文本对象,该对象将转换为上述.ToString();这意味着你的台词会被松散地翻译成

sw.WriteLine(theedit.ToString());
如果您查看WebControl.TextBox的文档。。。向下滚动列表到方法ToString()

你需要做的是。。。一次只给它一个字符串(尽管我假设你可以从文本框中给它一个原始字符串):


你说的“得到这个结果”是什么意思?你从哪里得到这个值?什么是
edit
?在.bat中,当我按下“edit”时。这基本上不能解释什么。在该方法中,您声明了一个变量(
batname
),该变量似乎从名为
edit
的控件实例的属性
SelectedValue
获取数据,就像
theedit
处理控件实例
batedit
和属性
edit
一样。另外,您是否可以尝试获取
batname
theedit
变量,以便我们查看这些变量的获取是否正确?您所说的“获取此结果”是什么意思?你从哪里得到这个值?什么是
edit
?在.bat中,当我按下“edit”时。这基本上不能解释什么。在该方法中,您声明了一个变量(
batname
),该变量似乎从名为
edit
的控件实例的属性
SelectedValue
获取数据,就像
theedit
处理控件实例
batedit
和属性
edit
一样。另外,您是否可以尝试获取
batname
theedit
变量,以便查看这些变量是否正确获取?string batname=edit.SelectedValue;StreamWriter sw=新的StreamWriter(“D:\\MPSite Serv\\bats\\”+batname);字符串theedit=batedit.Text;sw.WriteLine(编辑ToString());sw.Close();我做了这件事,只是什么都不做。我得到黑编辑。无,字符串batname=edit.SelectedValue;StreamWriter sw=新的StreamWriter(“D:\\MPSite Serv\\bats\\”+batname);字符串theedit=batedit.Text;sw.WriteLine(编辑ToString());sw.Close();我做了这件事,只是什么都不做。我得到黑编辑。没有什么,