问两个比较菜,又有很多人不知道的有关问题

问两个比较菜,又有很多人不知道的问题
我是新手,问两个问题吧.我觉得这两个比较菜,但我问了很多人了都没有给我满意的解释,望高手们给支个招:

1、C#   +   access   单引号和双引号的转换问题,我觉得每次都要去转换很麻烦,用哪种方式能省去这种麻烦,又可以不使数据出错。我现在的想法是:messbox.show( "单引号和双引号为非法字符,请不要输入 "),但又觉得是对用户的不尊重,还望高手指教。

2、   C#打印问题,我的程序里有统计功能,统计完以后想要打印,但因为没有做过打印,所以还不知道如何下手,C#里有几个自带的打印控件,或者水晶报表如何使用(连接、发布、使用都不懂)

不要小看这两个问题,我真的问了好多人了,还望高手们指教

------解决方案--------------------
1.可以使用参数.
比如
string name= " ' ' 使用引号也不怕 ' ";
OleDbConnection conn = new OleDbConnection(ConnectionString);
string cmd= "select * from _table where [name]=@name ";
OleDbCommand comm = new OleDbCommand(cmdCheck, conn);
comm.Parameters.AddWithValue( "@name ",name);
conn.Open();
OleDbDataReader reader = comm.ExecuteReader();

//............
2.看教程去.
------解决方案--------------------
打印问题~~你可以把你的数据生成网页~~让浏览器去打印~~
给个以前写的代码~`

SaveFileDialog saver = new SaveFileDialog();
saver.Filter = "HTML(*.html)|*.html ";
if (saver.ShowDialog() == DialogResult.OK) {
string filepath = saver.FileName;
StreamWriter sw = new StreamWriter(filepath, false);
sw.WriteLine( " <html> <body> <table> <tr> <td> 标题一 </td> <td> 标题二 </td> <td> 标题三 </td> </tr> ");
for (int i = 0; i < listView.Items.Count; i++) {
sw.Write( " <tr> ");
for (int j = 0; j < listView.Items[i].SubItems.Count; j++) {
sw.Write(string.Format( " <td> {0} </td> ", listView.Items[i].SubItems[j].Text));
}
sw.Write( " </tr> \r\n ");
}
sw.WriteLine( " </table> </body> </html> ");
sw.Close();
System.Diagnostics.Process.Start(saver.FileName);
}