关于C#做个小笔记

RichTextBox控件很强大,不用滚动条就能上下移动看文本。

但是编程中它在winform和WPF里,略有不同。

但是一般的TextBox这个控件在两者里面,我暂时没看到区别,都能用textbox1.Clear()清除文本框。

下面是RichTextBox在winform和WPF里有哪些不同。

――――――――――――――――――――――――――――――――――――――――――

分割线

1、RichTextBox控件对象 如何追加文本 并换行

在winform中,向RichTextBox控件的对象aa里添加文本。

string str="123456";

可以用aa.apptendtext(str)追加文本,也可以在str后直接+"\n"来实现换行。比如str="123456"+"\n"

这样重复调用aa.apptendtext(str);就会如下显示

123456

123456

123456

..

但是在WPF里,RichTextBox空间虽然依然存在,但这招不太管用,那么我们用aa.AppendText(Environment.NewLine);来换行,不过总觉得这样换行后,怪怪的,总感觉多了一个空行。。。

――――――――――――――――――――――――――――――――――――――――――

分割线

2、RichTextBox空间对象 如何清除文本

在winform中,直接aa.Clear();即可

但是在WPF这招依然不管用,因为WPF里RichTextBox的对象根本没有Clear()这个方法。于是,可以用aa.Document.Blocks.Clear()来清除。

――――――――――――――――――――――――――――――――――――――――――

分割线

3、winform和WPF好多东西通用,我写的联系人管理程序,先用winform写的,后来直接把代码复制到WPF里,除了以上两点需要注意,其他的没做改动,直接运行了。

――――――――――――――――――――――――――――――――――――――――――

分割线

4、关于ReadLine()读取txt乱码问题

FileStream readfilename = new FileStream("record.txt", FileMode.Open);

StreamReader sr = new StreamReader(readfilename);

然后通过sr.ReadLine()来读取一行,这样有时会出乱码。

原因是txt默认是ANSI编码,你手动建立txt文档,基本都是ANSI编码。

而在C#程序里,汉字默认是Unicode编码的字符串,你按照ANSI来建立,程序按照Unicode来读取,这编码不兼容必须乱码。

如果你让程序自己建立txt,然后写入汉字,再让程序用ReadLine()读取,就不会有问题,因为程序默认建立Unicode编码的txt文档。

所以如果你要手动建立文档,然后用程序来读的话,必须把txt保存为Unicode编码的。否则必须乱码。

――――――――――――――――――――――――――――――――――――――――――

分割线

5、怎么安装sql server 2008 express

首先在百度搜索这玩意儿,第一个链接就是微软官网下载。

下下来,我一双击就提示兼容问题。不管它,继续运行。

然后解压完了就提示需要安装framework 3.5 sp1,我下了个2.5M的sp1补丁,双击后提示我去“打开或关闭windows功能”里面更改。我打开一看,还真有个 framework3.5.1,勾上点确定。

过一会就更改好了。

然后再次安装sql,成功了。

――――――――――――――――――――――――――――――――――――――――――

分割线

6、关于VS2010连接SQL sever express 2008出错

装好了SQL sever express 2008,然后在VS2010里尝试建立“基于服务的数据库”,报错如下。

提示“与SQL Server数据库文件(.mdf)的连接要求在本地计算机上安装并运行SQL Server2005 Express 或 SQL Server 2008 Express”

解决方法:

前提是你装好了SQL sever express 2008,并且已经启动了服务。

打开你的“SQL sever 配置管理器”,

wKiom1O-F0bhfq4IAACQ_7pSt5E577.jpg

看到红线部分,那个括号里就是你安装SQL时的实例名(SQLEXPRESS2008是我的实例名,你的可能不同)。把这个实例名填到VS里。

具体步骤:VS2010里面的“工具”--“选项”--“数据库工具”--“数据连接”,如图填入

wKiom1O-F-ng7j-dAADjJgJOuCU621.jpg

“确定”。

好了,你再次在项目上右击“新建项”---建立“基于服务的数据库”,就不会有问题了。

――――――――――――――――――――――――――――――――――――――――――

分割线

7、怎么保证SQL数据库的主键值唯一性

在用C#操纵数据库时,我设置的主键值为ID字段,总是报错主键值重复。

那么防止主键值重复,在C#里可以用Guid id=Guid.NewsGuid();不过把这个id变量存入数据库会提示类型错误。无限目前没弄明白。

另一种解决方案,是直接在SQL语句里使用newid(),

前提:DQL主键值类型设为uniqueidentifier

SqlCommand cmd = new SqlCommand();

cmd.CommandText = "INSERT INTO tab00 VALUES(newid(),'张三','女','30')";

cmd.ExecuteNonQuery();

因为数据库命令类可以直接操纵SQL命令,所以在SQL语句直接写newid()更方便。自动生成了直接就放进去了。


你可能感兴趣的:(sql,.net,C#,WPF,WinForm)