各位好,帮我看下这个错误是什么原因引起的,存储过程定义:
CREATE PROCEDURE [dbo].[wl_fld]
-- Add the parameters for the stored procedure here
@gondan nvarchar(50),
@liaohao nvarchar(50),
@miaoshu nvarchar(50),
@denji nvarchar(50),
@yongliang int,
@zongliang int,
@gongyi nvarchar(50)AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO [Faliaominxi]([yongliao],[zongliang],[liaohao],[miaoshu]) VALUES(@yongliang,@zongliang,@liaohao,@miaoshu)
END
C#代码:
conn.Open();
SqlCommand sqlcmd1 = new SqlCommand("wl_fld", conn);
sqlcmd1.CommandType = CommandType.StoredProcedure;
sqlcmd1.Parameters.Add("@gondan", SqlDbType.NVarChar,50).Value = "HK2012112000";
sqlcmd1.Parameters.Add("@liaohao", SqlDbType.NVarChar,50).Value = WL_FLD_LVW_MX.Items[i].SubItems[1].Text;
sqlcmd1.Parameters.Add("@miaoshu", SqlDbType.NVarChar,50).Value = WL_FLD_LVW_MX.Items[i].SubItems[2].Text;
sqlcmd1.Parameters.Add("@denji", SqlDbType.NVarChar, 50).Value = WL_FLD_LVW_MX.Items[i].SubItems[6].Text;
sqlcmd1.Parameters.Add("@yongliang", SqlDbType.Int).Value = WL_FLD_LVW_MX.Items[i].SubItems[4].Text;
sqlcmd1.Parameters.Add("@zongliang", SqlDbType.Int).Value = WL_FLD_LVW_MX.Items[i].SubItems[5].Text;
sqlcmd1.Parameters.Add("@gongyi", SqlDbType.NVarChar, 50).Value = WL_FLD_CBB_bumen.Text;
sqlcmd1.ExecuteNonQuery();
conn.Close();代码执行后提示:将截断字符串或二进制数据现在发现的问题是 字符串长度在10(含)个字符以下时是正常的,超过10个长度就不行。 int型的没有问题,不知道问题出在哪里,帮忙改正! 谢谢! 另外我把定义时的字符串长度改成500也是同样的问题。
CREATE PROCEDURE [dbo].[wl_fld]
-- Add the parameters for the stored procedure here
@gondan nvarchar(50),
@liaohao nvarchar(50),
@miaoshu nvarchar(50),
@denji nvarchar(50),
@yongliang int,
@zongliang int,
@gongyi nvarchar(50)AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO [Faliaominxi]([yongliao],[zongliang],[liaohao],[miaoshu]) VALUES(@yongliang,@zongliang,@liaohao,@miaoshu)
END
C#代码:
conn.Open();
SqlCommand sqlcmd1 = new SqlCommand("wl_fld", conn);
sqlcmd1.CommandType = CommandType.StoredProcedure;
sqlcmd1.Parameters.Add("@gondan", SqlDbType.NVarChar,50).Value = "HK2012112000";
sqlcmd1.Parameters.Add("@liaohao", SqlDbType.NVarChar,50).Value = WL_FLD_LVW_MX.Items[i].SubItems[1].Text;
sqlcmd1.Parameters.Add("@miaoshu", SqlDbType.NVarChar,50).Value = WL_FLD_LVW_MX.Items[i].SubItems[2].Text;
sqlcmd1.Parameters.Add("@denji", SqlDbType.NVarChar, 50).Value = WL_FLD_LVW_MX.Items[i].SubItems[6].Text;
sqlcmd1.Parameters.Add("@yongliang", SqlDbType.Int).Value = WL_FLD_LVW_MX.Items[i].SubItems[4].Text;
sqlcmd1.Parameters.Add("@zongliang", SqlDbType.Int).Value = WL_FLD_LVW_MX.Items[i].SubItems[5].Text;
sqlcmd1.Parameters.Add("@gongyi", SqlDbType.NVarChar, 50).Value = WL_FLD_CBB_bumen.Text;
sqlcmd1.ExecuteNonQuery();
conn.Close();代码执行后提示:将截断字符串或二进制数据现在发现的问题是 字符串长度在10(含)个字符以下时是正常的,超过10个长度就不行。 int型的没有问题,不知道问题出在哪里,帮忙改正! 谢谢! 另外我把定义时的字符串长度改成500也是同样的问题。
==>
你在数据表里去把这个字段改大点,就可以了
或在 C#里存数据之前,检查下长度