我有一個insertparameter這是一個非空爲nvarchar(MAX),我把它用:設置SqlDataSource的字符串insertparameter的是「默認值」創建NULL錯誤
sds_accountDetail.InsertParameters["firstName"].DefaultValue = "";
但它仍然說「無法插入值NULL到列'firstName'「,我做錯了什麼?
我有一個insertparameter這是一個非空爲nvarchar(MAX),我把它用:設置SqlDataSource的字符串insertparameter的是「默認值」創建NULL錯誤
sds_accountDetail.InsertParameters["firstName"].DefaultValue = "";
但它仍然說「無法插入值NULL到列'firstName'「,我做錯了什麼?
我只是在尋找一個解決這個問題,我遇到了這個頁面作爲第一個谷歌的結果。我知道這個問題是從2012年開始的,但我決定爲了其他有同樣問題的人而發佈帖子。解決此問題的「正確」方法是將存在問題的Parameter
的ConvertEmptyStringToNull
屬性設置爲false
。它可以在.aspx文件中完成,像這樣:
<InsertParameters>
<!-- (...) -->
<asp:Parameter Name="firstName" ConvertEmptyStringToNull="false" />
<!-- (...) -->
</InsertParameters>
或代碼隱藏,像這樣:
sds_accountDetail.InsertParameters["firstName"].ConvertEmptyStringToNull = false;
極好的選擇,我會將此標記爲正確的答案,並在將來使用它。現在一年多以後,使用白色空間來表現空白字符串的劣勢顯而易見。這會好很多。 – Bill
聽起來像是從DB側正在添加它,你的coulmn允許它爲空? FirstName是一個不允許空值的列。 – Limey
該表中沒有列允許NULL。 – Bill
您是否嘗試過使用'String.Empty'來查看它是否有效?像這樣:'sds_accountDetail.InsertParameters [「firstName」]。DefaultValue = String.Empty;' – jadarnel27