天天看點

System.Data.SqlClient.SqlException: 必須聲明變量 '@ImageUrl'。

唉,真的是老了,昨天碰到的一個問題解決了之後,今天又碰到時又忘了昨天是怎麼解決的了,是以寫一寫部落格,幫助記憶而已。

一、問題:

編寫插入資料到資料庫代碼時,出現這個問題:

System.Data.SqlClient.SqlException: 必須聲明變量 '@ImageUrl'。

DAL代碼大概是這樣的:

public int Insert(xxx.BOL.xxx bo)

{

  ...

  //參數

  List<SqlParameter> paras = new List<SqlParameter>();

  if (!string.IsNullOrEmpty(bo.屬性)) paras.Add(new SqlParameter("@屬性名", bo.屬性名));

  ...

}

二、原因:

傻了!若bo.屬性真為空時,參數“@屬性名”豈不沒有添加到指令的參數數組中去?!當然就會了出現“必須聲明變量'@屬性名'”的廣告了。

三、解決:

改成:

SqlParameter para_xxx = new SqlParameter("@屬性名",SqlDbType.VarChar,50);

    if (!string.IsNullOrEmpty(bo.屬性名)) para_imageurl.Value = bo.屬性名;

paras.Add(para_xxx);