为什么我的程序只插入字符串的第一个字符?

时间:2016-07-15 05:42:52

标签: sql sql-server vb.net

为什么我的程序只插入字符串中的第一个字符? 我有dat查询:

function next() {
    //some code here
}

function previous() {
    //some code here
}

$("#next").click(next);

$("#previous").click(previous);

我尝试插入更多行,但只插入我的字符串中的第一个字符,如果我将字符串“Modern”放入表中只是“M”。但是为什么?

enter image description here

我在vb.net中插入的代码是:

USE [TCO_Orders_SS]
GO
/****** Object:  StoredProcedure [dbo].[InsertIroBOMParts]    Script Date: 07/15/2016 08:28:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertIroBOMParts]
@OrderID int,
@OrderSelection int,
@Idx varchar,
@Component varchar,
@DrawingNo varchar,
@PartNo varchar,
@BatchNoParts varchar,
@Amount varchar,
@Comments varchar

AS
BEGIN
      SET NOCOUNT ON;
      INSERT INTO  Orders_IroBOMParts(OrderID,OrderSelection, idx,componenent,drawingno,partno,batchno,amount,comments)

      VALUES (@OrderID,@OrderSelection, @Idx,@Component,@DrawingNo,@PartNo,@BatchNoParts,@Amount,@Comments)
END

1 个答案:

答案 0 :(得分:2)

您需要指定VARCHAR变量的宽度。目前你有:

@Idx varchar,
@Component varchar,
@DrawingNo varchar,
@PartNo varchar,
@BatchNoParts varchar,
@Amount varchar,
@Comments varchar

这指定没有数字宽度,默认为一个字符的宽度。相反,请指定您希望合理地适合所有数据的字符数宽度,例如:

@Idx varchar(55),
@Component varchar(55),
@DrawingNo varchar(55),
@PartNo varchar(55),
@BatchNoParts varchar(55),
@Amount varchar(55),
@Comments varchar(55)

这将为每个VARCHAR提供55个字符的宽度。