說明Ado.Net代碼亂碼介紹問題
各種說明Ado.Net代碼亂碼介紹問題的開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序,常規(guī)時(shí)都不直接對(duì)數(shù)據(jù)庫(kù)操作,而是先完成數(shù)據(jù)連接和通過數(shù)據(jù)適配器填充DataSet對(duì)象,然后客戶端再通過讀取DataSet來獲得需要的數(shù)據(jù),
ADO.NET,首先必須了解、掌握DataSet。DataSet主要有三個(gè)特性:
1. 獨(dú)立性。DataSet獨(dú)立于各種數(shù)據(jù)源。微軟公司在推出DataSet時(shí)就考慮到各種數(shù)據(jù)源的多樣性、復(fù)雜性。在Ado.Net代碼中,無論什么類型數(shù)據(jù)源,Ado.Net代碼都會(huì)提供一致的關(guān)系編程模型,而這就是DataSet。#t#
2. 離線(斷開)和連接。DataSet既可以以離線方式,也可以以實(shí)時(shí)連接來操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。這一點(diǎn)有點(diǎn)像ADO中的RecordSet。
3. DataSet對(duì)象是一個(gè)可以用XML形式表示的數(shù)據(jù)視圖,是一種數(shù)據(jù)關(guān)系視圖。
這樣子寫Ado.Net代碼,執(zhí)行以后數(shù)據(jù)庫(kù)中中文字符顯示亂碼,PS:Article_Subject 為NCHAR,Article_Content 為Ntext
- strSql = "INSERT INTO Articles ([Article_Subject] ,[Article_Content] ,[Author_ID] ,[Post_Time])
- ALUES ('測(cè)試','測(cè)試','FrancisLiu','"+DateTime.Today.ToShortDateString()+"')";
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = conn;
- cmd.CommandText = strSql;
- cmd.ExecuteNonQuery();
- 用 SqlParameter沒問題的
- strSql.Append("insert into [Articles](");
- strSql.Append("[article_Subject],[article_Content][author_id],[post_time])");
- strSql.Append(" values (");
- strSql.Append("@article_Subject,@article_Content,@author_id,@make_time,@sReply_count)");
- SqlParameter[] parameters = {
- new SqlParameter("@article_Subject", SqlDbType.NChar,40),
- new SqlParameter("@article_Content", SqlDbType.NText),
- new SqlParameter("@author_id", SqlDbType.NChar,10),
- new SqlParameter("@make_time", SqlDbType.NChar,25)
- parameters[0].Value = model.article_Subject;
- parameters[1].Value = model.article_Content;
- model.make_time;