嗨,我想插入波斯语和英语的数据,我要插入的字符串是'(پایه ۱۹۸=OID) -عبوری-متوسط'
但它显示??????而不是数据...我想按存储过程插入数据我的存储过程是
USE [DAT1]
GO
/****** Object: StoredProcedure [dbo].[SP_insert] Script Date: 7/25/2018 3:32:46 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
SET ANSI_WARNINGS off;
GO
ALTER proc [dbo].[SP_insert]
@FirstName nvarchar(256) = null,
@LastName nvarchar(50),
@EmailAddress nvarchar (50),
@phone int
as
begin
insert into [tbl_test ] values (@FirstName,@LastName,@EmailAddress,@phone)
end
当我使用N执行过程时,它可以工作,但是数据来自应用程序,我不能放N
在ADO.net中,我要在此处插入数据是我的代码
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("SP_insert", con);
cmd.CommandType = CommandType.StoredProcedure;
string mmmm = "(پایه 198=OID) -عبوری-متوسط";
cmd.Parameters.AddWithValue("@FirstName", mmmm);
cmd.Parameters.AddWithValue("@LastName", "ascascsacsa");
cmd.Parameters.AddWithValue("@EmailAddress", "advadsvasdv");
cmd.Parameters.AddWithValue("@phone", 1);
cmd.ExecuteNonQuery();
}
执行代码时显示错误
String or binary data would be truncated.
The statement has been terminated.
我该如何解决这个问题:)
答案 0 :(得分:1)
您的数据库仅存储它要接收的内容,并且如果表设置为使用N种类型(也请检查),它将存储所需的字符,并且与您当前的设置完全一样。更改您的应用程序代码以使用更广泛的字符集。