軟件版本爲VS2012旗艦版,數據庫爲VS2012集成數據庫。
首先要統一網頁編碼爲:utf-8,只用注意下面紅字的部分
前臺代碼:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
</body>
</html>
其次就是建數據庫時,將要存儲中文的列名的數據類型設置爲nvarchar()類型
我建的數據庫:
CREATE TABLE [dbo].[Name] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Chinese] NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
最後,向數據庫中插入中文的代碼:
後臺代碼:
using System;
using System.Collections.Generic;
using System.Linq;using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{ SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\ASP.NET\jiejuezhongwenluanma\App_Data\Database.mdf;Integrated Security=True"; con.Open();
string sql = "insert into Name(Chinese) values(N'" + TextBox1.Text + "')";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
}
}
注意插入語句中紅色的大N,並且看清它的位置,它是關鍵。在沒有大N之前,TextBox1.Text裏的漢字會變成問號存到數據庫,所以,顯示出來也是問號。
當加了大N之後,TextBox1.Text裏的漢字就會正常的存到數據庫,所以,顯示出來也就是正常的漢字。