新手的迷惑
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 "
也就是说@会使跟在它后面的字符串中的转义符不起作用!而并非它就是一个转义符!