使用实体框架将字符串保存到数据库时出现语言问题
本文关键字:数据库 问题 语言 保存 实体 框架 字符串 | 更新日期: 2023-09-27 18:08:44
我有一个带有文本框和按钮的aspx页面。当我点击按钮,它发送文本框的文本到一个函数,并将其保存到数据库使用实体框架。问题是,当我在文本框中使用我的本地字符,如:",",",ö,"ü"时,这些字符被保存为s, g, I, o, u。这是什么问题?
我的代码(Product.aspx)
<asp:TextBox ID="txtTitle" runat="server"></asp:TextBox>
<asp:Button ID="btnUpdate" runat="server" Text="Update" OnClick="btnUpdate_Click" />
(Product.aspx.cs) protected void btnUpdate_Click(object sender, EventArgs e)
{
Product p = new Product ()
{
Id = Int32.Parse(Session["ProductId"].ToString()),
Title = txtTitle.Text
};
int productId = ProductManager.UpdateProduct (p);
if (productId != -1)
{
// SUCCESS
}
else
{
// ERROR
}
}
public static int UpdateProduct(Product product)
{
using (var context = new LidyaEntities())
{
Product pUpd = context.Product.FirstOrDefault(p => p.Id == product.Id);
if (pUpd != null)
{
pUpd.Title = product.Title;
}
return context.SaveChanges();
}
}
数据库表(SQL SERVER);
(Id, int)
(Title, text)
使用"N"
来解决这个问题。
如果你想插入一个像"ҤїАͻ"
这样的字符串到Database
那么你的查询必须像这样
查询:
INSERT INTO TableName VALUES (N'ҤїАͻ')
我想这会解决你的问题
首先检查数据库并确认值已正确存储。如果不是,则需要更改字符串列的字符类型集。但在此之前,请确认后面代码中的文本值也是正确的。