日期:2014-05-19  浏览次数:20409 次

新手的迷惑
private   void   LWord_DataBind()
{
string   mdbConn=@ "PROVIDER=Microsoft.Jet.OLEDB.4.0;  
DATA   Source=C:\DbFs\TraceLWordDb.mdb ";
  string   cmdText=@ "SELECT   *   FROM   [LWord]   ORDER   BY   [LWordID]   DESC ";
 
OleDbConnection   dbConn=new   OleDbConnection(mdbConn);
  OleDbDataAdapter   dbAdp=new   OleDbDataAdapter(cmdText,   dbConn);

DataSet   ds=new   DataSet();
dbAdp.Fill(ds,   @ "LWordTable ");

  m_lwordListCtrl.DataSource=ds.Tables[@ "LWordTable "].DefaultView;
  m_lwordListCtrl.DataBind();
}
}
  }


为什么mdbConn=@ "PROVIDER=Microsoft.Jet.OLEDB.4.0;  
DATA   Source=C:\DbFs\TraceLWordDb.mdb ";   和   string   cmdText=@ "SELECT   *   FROM   [LWord]   里要加一个@符号呢?   它有什么作用和好处呀!


------解决方案--------------------
@是转义符,如果没有它 \就应该写成\\
------解决方案--------------------
@表示把PROVIDER=Microsoft.Jet.OLEDB.4.0;
DATA Source=C:\DbFs\TraceLWordDb.mdb与SELECT * FROM [LWord] 按原样输出

你还可用这样
在不加@符号时,则用:
DATA Source=C:\\DbFs\\TraceLWordDb.mdb
------解决方案--------------------
转义符,有了它就可以使用“正常格式”
------解决方案--------------------
用 @ 引起来的字符串以 @ 开头,并且也用双引号引起来。例如:

复制代码
@ "good morning " // a string literal


用 @ 引起来的优点在于换码序列“不”被处理,这样就可以轻松写出字符串,例如一个完全限定的文件名:

复制代码
@ "c:\Docs\Source\a.txt " // rather than "c:\\Docs\\Source\\a.txt "


若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:

复制代码
@ " " "Ahoy! " " cried the captain. " // "Ahoy! " cried the captain.


新手有问题应该多查查帮助的
------解决方案--------------------
转义符 字符名
\ ' 单引号
\ " 双引号
\\ 反斜杠
\0 空字符
\a 感叹号(Alert )
\b 退格
\f 换页
\n 新行
\r 回车
\t 水平 tab
\v 垂直tab
------解决方案--------------------
看来你应该多看看MSDN。
MSDN里是这样讲的:
用 @ 引起来的优点在于换码序列“不”被处理,这样就可以轻松写出字符串,例如一个完全限定的文件名:
@ "c:\Docs\Source\a.txt " // rather than "c:\\Docs\\Source\\a.txt "
也就是说@会使跟在它后面的字符串中的转义符不起作用!而并非它就是一个转义符!