.NET 计划

帮助你学习.NET,我们的目的是要精通.NET!

导航

做了一个多行的TextBox,在其中输入内容,然后把输入的内容存在数据库里面,之后在另一个页面中把它输出到页面上。结果发现在TextBox里面的回车和空格无法显示,郁闷!

输出的语句为:

string path=ConfigurationSettings.AppSettings["strConn2"];
string dataPath="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(path)+";";
OleDbConnection myConn=new OleDbConnection();
myConn.ConnectionString=dataPath;
string myScript;
string selCmd="select message from zhaopin where id=1";
OleDbCommand myCommand=new OleDbCommand(selCmd,myConn);
myCommand.Connection.Open();
OleDbDataReader myReader=myCommand.ExecuteReader();
myReader.Read();
myScript=myReader.GetString(0);
myCommand.Connection.Close();
Response.Write(myScript);

输入的文本为:


  中国人民解放军
        中国人民解放军
              中国人民解放军
        中国人民解放军
   中国人民解放军


输出的文本为:


  中国人民解放军中国人民解放军中国人民解放军中国人民解放军中国人民解放军


所有的空格和回车都不见了!

出错的原因:

仔细想了一下,又到BBS上去逛了一圈!终于知道了问题之所在,原来Html语言是不认识空格字符(" ")和回车符("\n")的,需要手动他们转换为HTML语言的空格符("&nbsp;")和回车符("<br>").

解决方法:

string path=ConfigurationSettings.AppSettings["strConn2"];
string dataPath="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(path)+";";
OleDbConnection myConn=new OleDbConnection();
myConn.ConnectionString=dataPath;
string myScript;
string selCmd="select message from zhaopin where id=1";
OleDbCommand myCommand=new OleDbCommand(selCmd,myConn);
myCommand.Connection.Open();
OleDbDataReader myReader=myCommand.ExecuteReader();
myReader.Read();
myScript=myReader.GetString(0);
myCommand.Connection.Close();
myScript=myScript.Replace(" ","&nbsp;");
myScript=myScript.Replace("\n","<br>");
Response.Write(myScript);

修改后输入的文本为:


  中国人民解放军
        中国人民解放军
              中国人民解放军
        中国人民解放军
   中国人民解放军


输出的文本为:


  中国人民解放军
        中国人民解放军
              中国人民解放军
        中国人民解放军
   中国人民解放军