【发布时间】:2014-06-22 21:19:51
【问题描述】:
我收到以下错误消息:
字符串或二进制数据将被截断
我尝试增加列大小但没有运气,我已经通过代码检查了两倍,但似乎找不到任何问题。在插入期间:
SqlCommand insert = new SqlCommand(@"INSERT
into orderDetails
(orderID, Name, Phone, Mobile, Email, DelName, DelRoad, DelTown, DelCity, DelCounty, DelPostCode, BilName, BilRoad, BilTown, BilCity, BilCounty, BilPostCode)
values
(@orderID , @Name , @Phone , @Mobile , @Email , @DelName , @DelRoad , @DelTown , @DelCity , @DelCounty , @DelPostCode , @BilName , @BilRoad , @BilTown , @BilCity , @BilCounty , @BilPostCode)", connection);
insert.Parameters.AddWithValue("@orderID", ID);
insert.Parameters.AddWithValue("@Name", name);
insert.Parameters.AddWithValue("@Phone", customer.Phone);
insert.Parameters.AddWithValue("@Mobile", customer.Mobile);
insert.Parameters.AddWithValue("@Email", customer.Email);
insert.Parameters.AddWithValue("@DelName", customer.DelName);
insert.Parameters.AddWithValue("@DelRoad", customer.DelRoad);
insert.Parameters.AddWithValue("@DelTown", customer.DelTown);
insert.Parameters.AddWithValue("@DelCity", customer.DelCity);
insert.Parameters.AddWithValue("@DelCounty", customer.DelCounty);
insert.Parameters.AddWithValue("@DelPostCode", customer.DelPostCode);
insert.Parameters.AddWithValue("@BilName", customer.BilName);
insert.Parameters.AddWithValue("@BilRoad", customer.BilRoad);
insert.Parameters.AddWithValue("@BilTown", customer.BilTown);
insert.Parameters.AddWithValue("@BilCity", customer.BilCity);
insert.Parameters.AddWithValue("@BilCounty", customer.BilCounty);
insert.Parameters.AddWithValue("@BilPostCode", customer.BilPostCode);
insert.ExecuteNonQuery();
这是我的表定义代码:
CREATE TABLE [dbo].[orderDetails] (
[orderID] INT NOT NULL,
[Name] NCHAR (100) NULL,
[Phone] NCHAR (100) NULL,
[Mobile] NCHAR (15) NULL,
[Email] NCHAR (15) NULL,
[DelName] NCHAR (100) NULL,
[DelRoad] NCHAR (100) NULL,
[DelTown] NCHAR (100) NULL,
[DelCity] NCHAR (100) NULL,
[DelCounty] NCHAR (100) NULL,
[DelPostCode] NCHAR (100) NULL,
[BilName] NCHAR (100) NULL,
[BilRoad] NCHAR (100) NULL,
[BilTown] NCHAR (100) NULL,
[BilCity] NCHAR (100) NULL,
[BilCounty] NCHAR (100) NULL,
[BilPostCode] NCHAR (100) NULL,
PRIMARY KEY CLUSTERED ([orderID] ASC)
);
客户类别
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Phone { get; set; }
public string Mobile { get; set; }
public string Email { get; set; }
public string DelName { get; set; }
public string DelRoad { get; set; }
public string DelTown { get; set; }
public string DelCity { get; set; }
public string DelCounty { get; set; }
public string DelPostCode { get; set; }
public string BilName { get; set; }
public string BilRoad { get; set; }
public string BilTown { get; set; }
public string BilCity { get; set; }
public string BilCounty { get; set; }
public string BilPostCode { get; set; }
public bool sameasDel { get; set; }
}
【问题讨论】:
-
你好!欢迎来到 StackOverflow。您能否发布您收到的错误消息,以及可能导致错误的
customer对象的一些示例值? -
你可以在客户对象中发布值吗?
-
我得到的错误是标题中的错误,它发生在 ExecuteNonQuery。 Customer 是一个像这样从会话中强制转换的类;客户 customer = (Customer)Session["order"]; - 客户类在主帖上
-
增加
Email列的大小并检查。 -
感谢您的编辑。您能否尝试发布一些您分配给导致失败的 Customer 对象的 值?正如 Bharadwaj 所说,它很可能是您的
Email专栏,但最好确定一下。
标签: c# sql sql-server