2013-01-04 67 views
1

我嘗試從行添加asp.net到SQL表指數(從零開始)必須大於參數列表

paremters SQLSERVER的尺寸大於或等於零,少是:

[id] smallint IDENTITY (1, 1) NOT NULL , 
[purchaseNum] int NULL, 
[purchaseDate] DateTime NULL, 
[prodId] smallint NULL, 
[amount] int NULL, 
[price] decimal NULL, 
[paidStatus] char NULL, 
Primary key (id) 

和在asp.net的代碼是:

private String BuildInsertCommand(Sale sale) 
{ 
    String command; 


    StringBuilder sb = new StringBuilder(); 
    // use a string builder to create the dynamic string 
    sb.AppendFormat("Values('{0}', '{1}' ,'{2}', '{3}', '{4}','{5}', '{6}')", Convert.ToInt16(sale.ProductId), Convert.ToDateTime(sale.PurchaseDate), Convert.ToInt16(sale.ProductId), Convert.ToDecimal(sale.AmountOfItems),sale.TotalPrice, Convert.ToChar(sale.PaidStatus)); 
    String prefix = "INSERT INTO sale " + "(purchaseNum, purchaseDate,prodId, amount, price,paidStatus) "; 

    command = prefix + sb.ToString(); 

    return command; 
} 

我不明白爲什麼會出現錯誤信息,

感謝

+0

你能否澄清錯誤消息是什麼嗎? – 2013-01-04 00:07:48

+0

那麼,你真的不應該建立動態查詢字符串。您應該使用SQL參數或存儲過程來保護您的應用程序。但至少發佈錯誤消息讓我們看看爲什麼你的代碼是錯誤的。 –

回答

0

您定義的7個佔位

{0}', '{1}' ,'{2}', '{3}', '{4}','{5}', '{6}' 

而且已通過6個參數

相關問題